Merge remote-tracking branch 'origin/master'
| | |
| | | JavaType type = writer.getType(); |
| | | Class<?> clazz = type.getRawClass(); |
| | | if (type.isTypeOrSubTypeOf(Number.class)) { |
| | | writer.assignNullSerializer(NullJsonSerializers.NUMBER_JSON_SERIALIZER); |
| | | // writer.assignNullSerializer(NullJsonSerializers.NUMBER_JSON_SERIALIZER); |
| | | } else if (type.isTypeOrSubTypeOf(Boolean.class)) { |
| | | writer.assignNullSerializer(NullJsonSerializers.BOOLEAN_JSON_SERIALIZER); |
| | | } else if (type.isTypeOrSubTypeOf(Character.class)) { |
| | |
| | | append-to-body
|
| | | top="5vh"
|
| | | >
|
| | | <div>
|
| | | <!-- <div>
|
| | | <FormTemplate
|
| | | v-if="type === 'batchApplyCode'"
|
| | | type="add"
|
| | |
| | | @getFormData="getCodeApplyFormData"
|
| | | @referConfigDataUpdate="referConfigDataUpdate"
|
| | | ></FormTemplate>
|
| | | </div>
|
| | | </div> -->
|
| | | <div class="flex_box">
|
| | | <div class="left" :style="{ width: leftWidth + 'px' }">
|
| | | <div class="left" :style="{ width: leftWidth + 'px' }" v-show="false">
|
| | | <div class="isExpand_box">
|
| | | <el-link type="primary" @click="hideTree">
|
| | | <i
|
| | |
| | | </el-table-column>
|
| | | </el-table>
|
| | | <div v-else style="height: 400px"></div>
|
| | | </el-tab-pane>
|
| | | <el-tab-pane :label="tab2Name" name="tab2">
|
| | | <el-table border :data="tab2Table" height="400px">
|
| | | <el-table-column
|
| | | v-for="item in cloNamesList"
|
| | | :key="item.field"
|
| | | :prop="item.field"
|
| | | :label="item.title"
|
| | | :width="item.width"
|
| | | align="center"
|
| | | >
|
| | | </el-table-column>
|
| | | </el-table>
|
| | | </el-tab-pane>
|
| | | </el-tabs>
|
| | | </div>
|
| | | <div>
|
| | | <el-table
|
| | | border
|
| | |
| | | ></el-table-column>
|
| | | </el-table>
|
| | | </div>
|
| | | </el-tab-pane>
|
| | | <el-tab-pane :label="tab2Name" name="tab2">
|
| | | <el-table border :data="tab2Table" height="600px">
|
| | | <el-table-column
|
| | | v-for="item in cloNamesList"
|
| | | :key="item.field"
|
| | | :prop="item.field"
|
| | | :label="item.title"
|
| | | :width="item.width"
|
| | | align="center"
|
| | | >
|
| | | </el-table-column>
|
| | | </el-table>
|
| | | </el-tab-pane>
|
| | | </el-tabs>
|
| | | </div>
|
| | | |
| | | </div>
|
| | | </div>
|
| | | <template #footer>
|
| | |
| | | export default {
|
| | | name: "ShowImportData",
|
| | | components: { ResembleQuery, FormTemplate },
|
| | | mixins: [codeApply],
|
| | | // mixins: [codeApply],
|
| | | props: {
|
| | | title: {
|
| | | type: String,
|
| | |
| | | type: String,
|
| | | default: "",
|
| | | },
|
| | | type: String
|
| | | type: String,
|
| | | secDTOList: {
|
| | | type: Array,
|
| | | default: () => ({})
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | dialogVisible: {
|
| | |
| | | },
|
| | | submit() {
|
| | | const params = {
|
| | | classifyAttr: this.classifyAttr,
|
| | | improt: true,
|
| | | classifyAttr: this.type === 'historyImport' ? this.classifyAttr : undefined,
|
| | | improt: this.type === 'historyImport' ? true : false,
|
| | | codeImprotSaveDatVOList: [
|
| | | {
|
| | | Clos: this.cloNamesList.map((item) => item.title),
|
| | |
| | | orderDTO: {
|
| | | codeClassifyOid: this.codeClassifyOid,
|
| | | templateOid: this.templateOid,
|
| | | secDTOList: [],
|
| | | secDTOList: this.secDTOList,
|
| | | },
|
| | | },
|
| | | ],
|
| | |
| | | handler(arr) {
|
| | | if (arr.length > 0 && this.type === 'batchImportApply') {
|
| | | this.treeNodeClick(arr[0])
|
| | | this.leftWidth = 0
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | :codeClassifyOid="codeClassifyOid"
|
| | | :redisOid="redisOid"
|
| | | :type="type"
|
| | | :title="title"
|
| | | :secDTOList="secDTOList"
|
| | | ></ShowImportData>
|
| | | </el-dialog>
|
| | | </template>
|
| | |
| | | return this.currentTypeObj[this.type]["tipList"];
|
| | | },
|
| | | downloadTemplateApi() {
|
| | | console.log(this.currentTypeObj[this.type], 'this.type');
|
| | | console.log(this.currentTypeObj[this.type], "this.type");
|
| | | return this.currentTypeObj[this.type]["downloadTemplateFun"];
|
| | | },
|
| | | action() {
|
| | |
| | | classifyAttr: this.classifyAttr,
|
| | | };
|
| | | } else if (this.type === "batchImportApply") {
|
| | | const secDTOList = this.localSecVOList.map(item => {
|
| | | // eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
| | | this.secDTOList = this.localSecVOList.map((item) => {
|
| | | return {
|
| | | secOid: item.oid,
|
| | | secValue: this.codeApplyForm[item.id]
|
| | | }
|
| | | })
|
| | | secValue: this.codeApplyForm[item.id],
|
| | | };
|
| | | });
|
| | | return {
|
| | | codeClassifyOid: this.codeClassifyOid,
|
| | | secDTOList: JSON.stringify(secDTOList),
|
| | | secDTOList: JSON.stringify(this.secDTOList),
|
| | | ...this.codeApplyForm,
|
| | | };
|
| | | } else if (this.type === "batchApplyCode") {
|
| | |
| | | upParams: "classifyAttr",
|
| | | },
|
| | | },
|
| | | secDTOList: [],
|
| | | };
|
| | | },
|
| | | methods: {
|
| | |
| | | },
|
| | | onSuccess(res) {
|
| | | if (Object.keys(res.data).length === 0) {
|
| | | this.$message.success(this.title + '导入成功!')
|
| | | this.dialogVisible = false
|
| | | return
|
| | | this.$message.success(this.title + "导入成功!");
|
| | | this.dialogVisible = false;
|
| | | return;
|
| | | }
|
| | | if (res.data.fileOid) {
|
| | | const fileName = res.data.filePath.split("/").pop();
|
| | |
| | | }
|
| | | },
|
| | | onError(err) {
|
| | | console.log(err, 'err');
|
| | | console.log(err, "err");
|
| | | this.pageLoading.close();
|
| | | },
|
| | | uploadChange(file) {
|
| | |
| | | this.$message.warning("编码状态不是“编辑中”,不可编辑"); |
| | | } else { |
| | | this.editvisible = true; |
| | | this.rowOid = this.selectRow[0]['oid'] |
| | | } |
| | | }, |
| | | //高级查询按钮 |
| | |
| | | item = { oid, id, name, attributeGroup, ...{ checked: false } } |
| | | if (dataRight.length !== 0) { |
| | | dataRight.forEach(element => { if (item.id === element.attrId) item.checked = true }); |
| | | return item |
| | | } |
| | | return item |
| | | }) |
| | | console.log(datas) |
| | | let dataValue = datas.map(item => item.checked ? item.oid : undefined) |
| | | this.attributeValue = dataValue.filter(item => item) |
| | | this.attributeData = datas |
| | |
| | | handleMaintenance(row) { |
| | | console.log(row) |
| | | this.dialogNode = true |
| | | this.modelKey = row.modelKey |
| | | this.saveParam.modelKey = row.modelKey |
| | | this.getStagelist() |
| | | }, |
| | | // 维护 |
| | | handleMaintenanceTransfer(row) { |
| | | this.saveParam.taskId = row.taskId |
| | | this.saveParam.taskName = row.taskName |
| | |
| | | <avue-crud :option="option" |
| | | :data="btmType.attributes" |
| | | :page.sync="page" |
| | | ref="attrTable" |
| | | @cell-mouse-enter="cellEditClick" |
| | | @cell-mouse-leave="cellEditSave"> |
| | | ref="attrTable"> |
| | | <template slot-scope="scope" slot="menuLeft"> |
| | | <el-button type="danger" |
| | | icon="el-icon-plus" |
| | | size="small" |
| | | @click="rowAdd()">属性选择</el-button> |
| | | </template> |
| | | |
| | | <template slot="menu" slot-scope="{row,index}"> |
| | | <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row)">编辑</el-button> |
| | | <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" @click="removeFormAttrTable(row,index)">移除</el-button> |
| | | <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)">保存</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitBtmType">确定</el-button> |
| | |
| | | ref="attrRef" |
| | | @on-load="attrRefOnLoad" |
| | | @search-change="attrRefSearch" |
| | | @selection-change="selectionChange"> |
| | | @selection-change="selectionChange" |
| | | v-loading="attrRef.loading"> |
| | | <template slot="typeValue" slot-scope="scope" > |
| | | <el-tag>{{scope.row.typeValue}}</el-tag> |
| | | </template> |
| | |
| | | showSubmitDialog : false, |
| | | option: { |
| | | height: "330px", |
| | | selection: true, |
| | | selection: false, |
| | | headerAlign: 'center', |
| | | border: true, |
| | | index: true, |
| | | rowKey: 'id', |
| | | tabs: true, |
| | | menu: false, |
| | | menu: true, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 150, |
| | | addBtn:false, |
| | | highlightCurrentRow: true, |
| | | column: [ |
| | |
| | | currentPage:1, |
| | | pageSize:10, |
| | | }, |
| | | loading: false, |
| | | key: null, |
| | | option:{ |
| | | height: 360, |
| | |
| | | ] |
| | | }, |
| | | data: [], |
| | | queryNotIn: null |
| | | queryNotIn: '' |
| | | }, |
| | | revisionRef: { |
| | | visible: false, |
| | |
| | | closeAttrDialog(){ |
| | | this.attrRef.visible = false; |
| | | }, |
| | | // 添加 |
| | | rowAdd(){ |
| | | // 属性选择添加 |
| | | async rowAdd() { |
| | | await this.attrRefOnLoad(); |
| | | this.attrRef.visible = true; |
| | | this.attrRefOnLoad(); |
| | | }, |
| | | // 属性池加载 |
| | | attrRefOnLoad(){ |
| | | this.attrRef.loading = true; |
| | | queryPage(this.attrRef.key,this.attrRef.queryNotIn,this.attrRef.page.currentPage, this.attrRef.page.pageSize).then(res => { |
| | | const data = res.data.data; |
| | | this.attrRef.page.total = data.total; |
| | | this.attrRef.data = data.records; |
| | | }); |
| | | setTimeout(() => { |
| | | this.attrRef.loading = false; |
| | | },600) |
| | | this.$nextTick(() => { |
| | | this.$refs.attrRef.refreshTable(); |
| | | }); |
| | |
| | | done(); |
| | | this.attrRef.key = null; |
| | | }, |
| | | // 从属性池中移除 |
| | | removeFormAttrTable(row,index){ |
| | | this.btmType.attributes.splice(index,1); |
| | | this.attrRef.queryNotIn = ""; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | }, |
| | | // 属性池勾选事件 |
| | | selectionChange(list){ |
| | | this.attrRef.selectData = list; |
| | |
| | | if(!this.btmType.attributes){ |
| | | this.btmType.attributes = []; |
| | | } |
| | | this.attrRef.queryNotIn = ""; |
| | | this.attrRef.selectData.forEach(item => { |
| | | this.btmType.attributes.push({ |
| | | id: item.id, |
| | |
| | | }); |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }); |
| | | this.attrRef.data = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 取消属性池勾选 |
| | |
| | | }, |
| | | // 列表编辑 |
| | | cellEditClick(cell){ |
| | | console.log(cell); |
| | | cell.$cellEdit = true; |
| | | }, |
| | | // 列表编辑保存 |
| | |
| | | { |
| | | label:'英文名称', |
| | | prop: 'id', |
| | | editDisabled: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | </el-button> |
| | | <el-button size="small" plain type="primary" icon="el-icon-zoom-in" @click="applyRangeOpen">查看使用范围 |
| | | </el-button> |
| | | <el-input placeholder="按属性英文名称查询" v-model="searchId" clearable prefix-icon="el-icon-search" class="attrSearch" |
| | | <el-input placeholder="按属性编号查询" v-model="searchId" clearable prefix-icon="el-icon-search" class="attrSearch" |
| | | size="small" @change="doSearch" type="text"></el-input> |
| | | <el-button size="small" plain type="primary" icon="el-icon-search" @click="doSearch"> 搜索</el-button> |
| | | </template> |
| | |
| | | this.$refs.originalAdd.activeName = this.itemForm.activeName; |
| | | this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag; |
| | | this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag; |
| | | this.refreshChange() |
| | | // this.refreshChange() |
| | | }, |
| | | deleteSave(row,index) { |
| | | console.log(row); |
| | | remove(row.oid).then(res => { |
| | | this.$message.success("删除成功"); |
| | | }); |
| | | this.refreshChange(); |
| | | }); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springblade.core.cache.utils.CacheUtil; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import com.vci.ubcs.core.log.exception.ServiceException; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | |
| | | // 回收需要业务数据删除 |
| | | if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) { |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname())); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid())); |
| | | } else { |
| | | for (BaseModel baseModel : baseModels) { |
| | |
| | | // final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "}; |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid())); |
| | | // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | final String[] sql = {"select count(*) from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "}; |
| | | conditionMap.forEach((key, value) -> { |
| | | sql[0] += " and " + key + " = " + value; |
| | |
| | | fieldVO.setTemplet(attrVO.getTableDisplayJs()); |
| | | } |
| | | if (StringUtils.isBlank(fieldVO.getTemplet()) && VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributeDataType())) { |
| | | fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}"); |
| | | fieldVO.setTemplet("function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'是':'否'}"); |
| | | // fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}"); |
| | | } |
| | | fieldVO.setOptionJsMap(eventJsMap); |
| | | fieldVO.setStyle(attrVO.getTableDisplayStyle()); |
| | |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referVO.getReferType())); |
| | | // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | String referTable = listR.getData().get(0).getTableName(); |
| | | // String referTable = "pl_code_classify"; |
| | | String referTableNick = attrVO.getId() + "0"; |
| | |
| | | } |
| | | // String tableName = VciBaseUtil.getTableName(btmType); |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); |
| | | String tableName = listR.getData().get(0).getTableName(); |
| | | String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(",")) |
| | |
| | | // baseMapper.deleteBatchIds(cboList); |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid())); |
| | | if (listR.getData().size() == 0) { |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), |
| | |
| | | public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) { |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if (listR.getData().size() == 0) { |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //将bean转为map,mybatis统一处理 |
| | |
| | | |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if (listR.getData().size() == 0) { |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //查询数据 |
| | |
| | | */ |
| | | public BaseModel createBaseModel(String boName) { |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName)); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | String userName = String.valueOf(AuthUtil.getUser().getUserId()); |
| | | BaseModel bo = new BaseModel(); |
| | | // bo.setOid(VciBaseUtil.getPk()); |
| | |
| | | public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) { |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if (listR.getData().size() == 0) { |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //将bean转为map,mybatis统一处理 |
| | |
| | | toBo.setVersionRule(fromBo.getVersionRule()); |
| | | // RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal); |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname())); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | Map<String, Object> nextRevision = commonsMapper.getNextRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid()); |
| | | toBo.setRevisionSeq(Integer.parseInt(nextRevision.get("REVISIONSEQ").toString())); |
| | | toBo.setRevisionValue(nextRevision.get("REVISIONVAL").toString()); |