コード例 #1
0
    def IsExistTask(self, TaskName):
        SQL = 'SELECT * FROM U_Task WHERE TaskName="' + TaskName + '"'
        if g_DB.Execute(SQL):
            return g_DB.isEmpty()

        #如果数据库操作失败则返回存在
        return True
コード例 #2
0
ファイル: QtRights.py プロジェクト: GrandG/Workshop
    def clickSubmitButton(self):
        """提交数据."""

        # 未选择权限
        if self.selectedCombo not in self.rightsList:
            if (QMessageBox.warning(
                    self, '警告: ', '请选择权限名称!',
                    QMessageBox.Ok, QMessageBox.Ok) == QMessageBox.Ok):
                return

        # 不更改数据管理员的 action
        elif self.selectedCombo == '数据管理员':
            if (QMessageBox.warning(
                    self, '警告: ', '请选择权限名称!',
                    QMessageBox.Ok, QMessageBox.Ok) == QMessageBox.Ok):
                return
        else:
            ret = QMessageBox.question(
                self, '确认', '是否提交数据?',
                QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel,
                QMessageBox.Save)
            if ret == QMessageBox.Save:
                for i in self.checkedAction:
                    sql = 'insert into u_right_action ' \
                        '(RightName, ActionName) values ("{}", "{}")'
                    g_DB.Execute(sql.format(self.selectedCombo, i))
                for i in self.uncheckedAction:
                    sql = 'delete from u_right_action where RightName="{}" ' \
                          'and ActionName="{}"'
                    g_DB.Execute(sql.format(self.selectedCombo, i))
                g_DB.commit()
                QMessageBox.warning(self, '成功', '提交成功')
                self.checkedAction = []
                self.uncheckedAction = []
                # app.quit()
            elif ret == QMessageBox.Discard:
                self.checkedAction = []
                self.uncheckedAction = []
                self.updateListView()
                return
            elif ret == QMessageBox.Cancel:
                return
コード例 #3
0
ファイル: QtRights.py プロジェクト: GrandG/Workshop
def getData(sql, key):
    """从数据库查询 sql 语句, 并通过 key 获取结果"""
    if not g_DB.Execute(sql):
        return []
    res = g_DB.fetchAll()
    if not res:
        return []

    result = []
    for data in res:
        result.append(data[key])
    return result
コード例 #4
0
    def SubmitTask(self):
        data, PCBCode = self.GetDataFromView()
        if not data:
            return False

        if not g_DB.insert('u_task', data):
            return False

        SQL = r'select * from c_taskroledef order by code'

        now = str(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime()))
        data1 = {}
        data1.setdefault('TaskName', data['TaskName'])
        data1.setdefault('SubTaskStartDate', '"%s"' % now)
        data1.setdefault('SubTaskEndDate', '"%s"' % now)
        data1.setdefault('SubTaskRealDate', '"%s"' % now)
        data1.setdefault('SubTaskOwner', data['TaskOwner'])

        IsFirst = True
        if g_DB.Execute(SQL):
            res = g_DB.fetchAll()
            if res:
                for d in res:
                    data1['SubTaskID'] = '"%d"' % d.get('Code', '')
                    data1['SubTaskName'] = '"%s"' % d.get('Role', '')
                    if IsFirst:
                        data1['SubTaskStatus'] = '"%s"' % '进行中'
                    else:
                        data1['SubTaskStatus'] = '"%s"' % '未启动'

                    if not g_DB.insert('u_taskdetail', data1):
                        return False

                    IsFirst = False
        else:
            return False

        #该需求待定
        # for code in PCBCode.split(','):
        #     data1['PCBCode'] = '"%s"' % code
        #     SQL = 'UPDATE u_r_PCB_Product SET PCBCode = %s WHERE TaskName = %s' % (('"%s"' % code), data['TaskName'])
        #     if not g_DB.Execute(SQL):
        #         return False

        g_Task.Task = data['TaskName'][1:-1]
        g_Task.ProductType = data['ProductType'][1:-1]
        g_Task.ProductEnv = data['Env'][1:-1]

        #数据库执行正确
        return True
コード例 #5
0
 def GetEnvInfo(self):
     SQL = r'select distinct Env from dfr_productline'
     result = []
     if g_DB.Execute(SQL):
         res = g_DB.fetchAll()
         if res:
             for data in res:
                 for key in data:
                     result.append(data[key])
         g_Log.LogInfo('获取环境信息成功')
     else:
         g_Log.LogError('获取环境信息失败')
         g_Log.LogDebug('SQL语句:' + SQL)
     return result
コード例 #6
0
    def GetProductFamilyInfo(self, ProductType):
        SQL = r'select productFamily from dfr_productline where Class="' + ProductType + '"'
        result = []
        if g_DB.Execute(SQL):
            res = g_DB.fetchAll()
            if res:
                for data in res:
                    for key in data:
                        result.append(data[key])

            g_Log.LogInfo('从数据库获取产品族信息成功')
        else:
            g_Log.LogError('从数据库获取产品族信息失败')
            g_Log.LogDebug('SQL语句:' + SQL)

        return result
コード例 #7
0
ファイル: StepJudge.py プロジェクト: GrandG/Workshop
    def CheckExpertExist(self, Expert):
        ExpertLst = Expert.split(';')
        if not ExpertLst:
            self.ShowMessage('请指定评审专家!')
            return False
        for ex in ExpertLst:
            name = ex.split(' ')
            if len(name) < 3:
                self.ShowMessage('评审专家信息不全')
                return False

            SQL = 'select UserName from u_user where UserName="******"'
            if not g_DB.Execute(SQL): return False
            if g_DB.isEmpty():
                self.ShowMessage('指定的评审专家' + name[0] +'不存在,请确认')
                return False

        return True
コード例 #8
0
ファイル: ServerConfigure.py プロジェクト: GrandG/Workshop
    def ReductionDBClick(self):
        #还原数据库
        from module.g_Top import g_DB
        Error = ''
        try:
            if not g_DB.GetConnectState:
                if not g_DB.ConnectFormFile(g_Data.path + g_Data.data +
                                            g_Data.MySqlConfigFileName):
                    Error = g_DB.error
                    return False

            sqlstr = 'create database ' + self.lineEditDB.text()
            if not os.path.exists(self.lineEditDBFilePath.text()):
                Error = '数据库文件不存在!'
                return False

            if not g_DB.Execute(sqlstr):
                Error = g_DB.error
                return False

            path = os.path.abspath(self.lineEditDump.text())
            scmd = '"{Path}" -h {host} -P {ServerAdds} -u {UserName} -p {password} -B {DB} < {DBFilePath}'.format(
                Path=path,
                host=self.lineEditServerAdds.text(),
                UserName=self.lineEditUserName.text(),
                password=self.lineEditPassword.text(),
                DB=self.lineEditDB.text(),
                DBFilePath=self.lineEditDBFilePath.text())
            try:
                win32api.ShellExecute(0, 'open', 'cmd.exe', '/c'.join(scmd),
                                      '', 1)
            except Exception as e:
                Error = '导入脚本不合法:' + str(e)
                return False

            QtWidgets.QMessageBox.information(self, ('提示'), ('数据库还原成功!'))
            return True
        finally:
            g_DB.close()
            if len(Error) > 0:
                QtWidgets.QMessageBox.warning(self, ('错误'), (Error))
        pass
コード例 #9
0
    def Submit(self):
        try:
            result = False
            destPath = g_Data.path + 'Project\\' + g_Task.task + '\\'
            if not os.path.exists(destPath):
                os.mkdir(destPath)

            SQL = 'select * from u_r_pcb_product where TaskName="' + g_Task.Task + '"'
            if not g_DB.Execute(SQL):
                return result
            res = g_DB.fetchAll()
            if not res: return result

            PCBCode = res[0]['PCBCode']
            ExcelFileName = destPath + g_Task.Task + PCBCode + '_Input.xls'
            if not self._SaveDataToExcel(ExcelFileName):
                g_Log.LogError('存储Excel错误')
                return result

            BDMPos, BrdPos = self.GetFileName()
            shutil.copy(BDMPos, destPath + '_' + PCBCode + '_Bom.xls')
            shutil.copy(BrdPos, destPath + '_' + PCBCode + '_Brd.brd')

            data = {}
            data.setdefault('brd_LocalPath', '"%s"' % BrdPos)
            data.setdefault('Bom_LocalPath', '"%s"' % BDMPos)
            data.setdefault('Input_LocalPath', '"%s"' % ExcelFileName)
            data.setdefault('InputFlag', '1')

            if not g_DB.insert('u_r_pcb_product', data, 'TaskName="'+g_Task.Task + '"'):
                return result

            result = True
            return result
        finally:
            if result:
                self._ShowMessage((PCBCode + '单板信息提交完成!'))
            else:
                self._ShowMessage(('单板信息提交失败!'))
コード例 #10
0
    def GetRuleListInput(self):
        SQL = 'select name from general_info where type="S_DFRLIB"'
        if not g_DB.Execute(SQL):
            return False
        res = g_DB.fetchAll()
        if not res: return False

        SQL = 'select distinct inputtype,inputmethod,inputoption from dfr_inputfact,dfr_r_rule_input,('
        IsFirst = True

        for d in res:
            if not IsFirst: SQL += ' UNION '
            SQL += 'select code,RuleContent,product'
            SQL += ' from '+ d.get('name', '')
            IsFirst = False

        SQL += ') as ruleQuery '
        SQL += 'where ((Product="通用") or (Product like "%' + g_Task.ProductType + '%"))'
        SQL += 'and ruleQuery.code=dfr_r_rule_input.ruleID and dfr_r_rule_input.inputID=dfr_inputfact.code '
        SQL += 'order by inputtype'

        if not g_DB.Execute(SQL):
            return False
        res1 = g_DB.fetchAll()
        if not res1: return False

        IsFirst = True
        top = 15
        for d1 in res1:
            SQL = 'select distinct dfr_inputfact.code as code,InputDescription,InputMethod,InputOption,TrigCond'
            SQL += ' from dfr_inputfact,dfr_r_rule_input,('
            for d in res:
                if not IsFirst: SQL += ' UNION '
                SQL += 'select code,RuleContent,product'
                SQL += ' from ' + d.get('name', '')
                IsFirst = False

            SQL += ') as ruleQuery '
            SQL += 'where ((Product="通用") or (Product like "%' + g_Task.ProductType + '%"))'
            SQL += 'and ruleQuery.code=dfr_r_rule_input.ruleID and dfr_r_rule_input.InputID=dfr_inputfact.Code '
            SQL += 'and InputType="' + d1['inputtype'] + '"'

            if not g_DB.Execute(SQL):
                return False
            res2 = g_DB.fetchAll()
            if not res2: return False

            RowCount = math.ceil(len(res1) + 1 / 6)
            height = 30 + RowCount * 22
            size = [5, top, 700, height]
            top += height + 20

            CheckBoXList = self.CreateCheckBoXList(res1[0]['inputtype'], size, RowCount)

            Row = 1
            Col = 0
            for d in res2:
                self.AddCheckBox(CheckBoXList, Row, Col, d['InputDescription'])
                Col += 1
                if Col == 6:
                    Row += 1
                    Col = 0