modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseConfigItemDao.java
@@ -21,5 +21,5 @@ List<WarehouseConfigItem> getList(Map<String, Object> params); List<DictIstance> itemList(Long projectId); List<WarehouseConfigItem> itemList(Long projectId); } modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java
@@ -31,7 +31,7 @@ private String itemName; @ApiModelProperty(value = "配置项标识") private String itemDentify; private String itemIdentify; @ApiModelProperty(value = "版本") private String version; modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseConfigItemService.java
@@ -47,7 +47,7 @@ return baseDao.getList(params); } public List<DictIstance> ConfigItemList(Long projectId) { public List<WarehouseConfigItem> ConfigItemList(Long projectId) { return baseDao.itemList(projectId); } } modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java
@@ -92,7 +92,7 @@ @PostMapping @ApiOperation("新增") @LogOperation("新增") public Result insert(@RequestBody ItemCirculatOrderDto itemCirculatOrderDto){ public Result<Long> insert(@RequestBody ItemCirculatOrderDto itemCirculatOrderDto){ //效验数据 ValidatorUtils.validateEntity(itemCirculatOrderDto.getCirculatOrder(), AddGroup.class, DefaultGroup.class); Map<String, String> map = new HashMap<>(); @@ -100,18 +100,18 @@ map.put("projectId",itemCirculatOrderDto.getProjectId().toString()); itemCirculatOrderDto.getCirculatOrder().setCode(sysCodeRuleService.getNewCode(map)); Boolean result = itemCirculatOrderService.save(itemCirculatOrderDto); return Result.ok(); return Result.ok(itemCirculatOrderDto.getCirculatOrder().getId()); } @PutMapping @ApiOperation("修改") @LogOperation("修改") public Result update(@RequestBody ItemCirculatOrderDto itemCirculatOrderDto){ public Result<Long> update(@RequestBody ItemCirculatOrderDto itemCirculatOrderDto){ //效验数据 ValidatorUtils.validateEntity(itemCirculatOrderDto.getCirculatOrder(), UpdateGroup.class, DefaultGroup.class); Boolean result = itemCirculatOrderService.save(itemCirculatOrderDto); return Result.ok(); return Result.ok(itemCirculatOrderDto.getCirculatOrder().getId()); } @DeleteMapping("deleteCirculat") modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/dto/ItemCirculatOrderDto.java
@@ -4,7 +4,7 @@ import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical; import com.zt.life.modules.project.model.*; import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo; import com.zt.life.sys.dto.OssDto; import com.zt.modules.workflow.dto.FlowInfoDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,6 +16,9 @@ private Long id; private Long projectId; private Long circulatOrderid; private String stepIdMark; private FlowInfoDto flowInfoDto; @ApiModelProperty(value = "测试项目基本信息") private Project project; modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
@@ -36,7 +36,10 @@ private String itemOther; @ApiModelProperty(value = "物品接收人") private String itemAccept; private String itemAcceptor; @ApiModelProperty(value = "物品接收人ID") private String itemAcceptorId; @ApiModelProperty(value = "物品接收时间") @JsonFormat(pattern = "yyyy-MM-dd") @@ -45,29 +48,37 @@ @ApiModelProperty(value = "物品接收情况说明") private String acceptSituation; @ApiModelProperty(value = "病毒库版本") private String virusLibraryVersion; @ApiModelProperty(value = "校准检测人") private String calibratDetect; private String calibratDetector; @ApiModelProperty(value = "校准检测人ID") private String calibratDetectorId; @ApiModelProperty(value = "校准检测时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date detectDate; @ApiModelProperty(value = "校准检测情况说明") private String detectSituation; @ApiModelProperty(value = "物品入库人") private String warehouse; /* @ApiModelProperty(value = "物品入库人") private String warehousePerson; @ApiModelProperty(value = "物品入库时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date warehouseDate; @ApiModelProperty(value = "物品入库情况") private String warehouseSituation; private String warehouseSituation;*/ @ApiModelProperty(value = "物品发放人") private String itemIssue; private String itemIssuer; @ApiModelProperty(value = "物品发放人ID") private String itemIssuerId; @ApiModelProperty(value = "物品发放时间") @JsonFormat(pattern = "yyyy-MM-dd") modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java
@@ -19,9 +19,12 @@ import com.zt.life.sys.service.SysOssConfigService; import com.zt.modules.coderule.service.SysCodeRuleService; import com.zt.modules.oss.service.SysOssService; import com.zt.modules.workflow.dto.FlowInfoDto; import com.zt.modules.workflow.service.WorkflowService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -37,11 +40,11 @@ /** * item_circulat_order * * @author zt generator * @author zt generator * @since 1.0.0 2023-11-22 */ @Service public class ItemCirculatOrderService extends BaseService<ItemCirculatOrderDao, ItemCirculatOrder> { public class ItemCirculatOrderService extends BaseService<ItemCirculatOrderDao, ItemCirculatOrder> { @Autowired private SysOssConfigService sysOssConfigService; @@ -61,7 +64,8 @@ private ItemCirculatOrderTechnicalService technicalService; @Autowired private SoftwareTestOrderService softwareTestOrderService; private WorkflowService workflowService; /** * 分页查询 * @@ -88,7 +92,7 @@ else { Map<String, String> map = new HashMap<>(); map.put("funCode", "item_circulat_order"); map.put("projectId",itemCirculatOrderDto.getProjectId().toString()); map.put("projectId", itemCirculatOrderDto.getProjectId().toString()); itemCirculatOrderDto.getCirculatOrder().setProjectId(itemCirculatOrderDto.getProjectId()); itemCirculatOrderDto.getCirculatOrder().setCode(sysCodeRuleService.getNewCode(map)); baseDao.insert(itemCirculatOrderDto.getCirculatOrder()); @@ -112,6 +116,15 @@ } else { testAgencyInfoService.update(itemCirculatOrderDto.getTestAgencyInfo()); } Long bizId = itemCirculatOrderDto.getCirculatOrder().getId(); FlowInfoDto flowInfoDto = itemCirculatOrderDto.getFlowInfoDto(); if ("tj".equals(flowInfoDto.getSubmitType()) || "bl".equals(flowInfoDto.getSubmitType())) { if ("tj".equals(flowInfoDto.getSubmitType())) { workflowService.startFlow(flowInfoDto.getFlowCode(), bizId); } workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark()); } return true; } @@ -130,7 +143,7 @@ data.setTechnicalList(technicalList); } else { ItemCirculatOrder itemCirculatOrder =new ItemCirculatOrder(); ItemCirculatOrder itemCirculatOrder = new ItemCirculatOrder(); data.setCirculatOrder(itemCirculatOrder); List<?> resultList = technicalService.itemList(projectId); List<?> technicalList = resultList; modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
@@ -120,12 +120,14 @@ private String entrustSign; @ApiModelProperty(value = "委托方签字日期") @JsonFormat(pattern = "yyyy-MM-dd") private String entrustSignDate; @ApiModelProperty(value = "承托方签字") private String contractSign; @ApiModelProperty(value = "承托方签字日期") @JsonFormat(pattern = "yyyy-MM-dd") private String contractSignDate; @TableField(exist = false) modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -28,6 +28,7 @@ import java.io.FileNotFoundException; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -97,6 +98,8 @@ Map<String, String> map = new HashMap<>(); map.put("funCode", "software_test_order"); map.put("projectId",softwareTestOrderDto.getProjectId().toString()); /* DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); softwareTestOrderDto.getSoftwareTestOrder().getEntrustSignDate();*/ softwareTestOrderDto.getSoftwareTestOrder().setProjectId(softwareTestOrderDto.getProjectId()); softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map)); baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder()); modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
@@ -19,7 +19,7 @@ </select> <select id="itemList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit"> SET @row_number = 0; SELECT dd.dict_label AS name, SELECT dd.dict_label AS examineItem, (@row_number := @row_number + 1) AS no FROM sys_dict_type dt JOIN sys_dict_data dd ON dt.ID = dd.DICT_TYPE_ID modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml
@@ -16,17 +16,32 @@ ORDER BY ${orderBySql} </if> </select> <select id="itemList" resultType="com.zt.core.sys.dto.DictIstance"> SELECT m.*, p.secret_class FROM software_test_order_measured m JOIN software_test_order s ON s.id = m.order_id JOIN project p ON p.id = ${projectId} <where> s.is_delete = 0 and m.is_delete = 0 <if test="projectId!=null"> and s.project_id = ${projectId} </if> </where> <select id="itemList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem"> SELECT p.secret_class, SUBSTRING(m.name, LOCATE('软件', m.name) , LENGTH(m.name)) AS itemName, m.identify AS version, m.name AS Item_identify FROM software_test_order s JOIN software_test_order_measured m ON s.project_id = ${projectId} JOIN project p ON p.id = ${projectId} WHERE s.is_delete = 0 AND s.id = m.order_id UNION SELECT NULL AS secretClass, '软件测试委托单' AS itemName, NULL AS version, s.code AS itemIdentify FROM software_test_order s WHERE s.is_delete = 0 AND s.project_id = ${projectId} UNION SELECT NULL AS secretClass, '物品流转单' AS itemName, NULL AS version, i.code AS itemIdentify FROM item_circulat_order i WHERE i.is_delete = 0 AND i.project_id = ${projectId} </select> </mapper> web/packages/components/zt-dialog/src/zt-dialog.vue
@@ -1,221 +1,231 @@ <template> <el-dialog v-dialogDrag :class="{'dialog-column-1': column === '1', 'dialog-column-2': column === '2', 'dialog-column-3': column === '3', 'dialog-column-4': column === '4'}" :visible.sync="visible" v-if="visible" :title="_title" :close-on-click-modal="false" :close-on-press-escape="false" :append-to-body="appendToBody" @open="onOpen" @close="onClose"> <slot></slot> <template slot="footer"> <el-button @click="visible = false" v-show="editAble">{{ $t('cancel') }}</el-button> <el-button type="primary" @click="formSubmit()" v-preventReClick v-show="editAble && hasConfirm">{{ $t('confirm') }} </el-button> <!-- 确定 --> <el-button type="warning" @click="formSubmit()" v-show="stepMarker">提交 </el-button> <el-button type="warning" @click="formSubmit()" v-show="!stepMarker">保存 </el-button> <el-button type="info" @click="close()" v-show="!editAble">{{ $t('close') }}</el-button> <slot name="footer"></slot> </template> </el-dialog> <el-dialog v-dialogDrag :class="{'dialog-column-1': column === '1', 'dialog-column-2': column === '2', 'dialog-column-3': column === '3', 'dialog-column-4': column === '4'}" :visible.sync="visible" v-if="visible" :title="_title" :close-on-click-modal="false" :close-on-press-escape="false" :append-to-body="appendToBody" @open="onOpen" @close="onClose"> <slot></slot> <template slot="footer"> <template v-if="stepMarker && stepMarker.indexOf('first')>0"> <el-button type="warning" @click="formSubmit('zc')">暂存</el-button> <el-button type="warning" @click="formSubmit('tj')" v-if="">提交 </el-button> </template> <template v-else-if="stepMarker"> <el-button type="warning" @click="formSubmit('zc')">暂存</el-button> <el-button type="warning" @click="formSubmit('bl')">办理</el-button> </template> <el-button type="primary" @click="formSubmit('qd')" v-preventReClick v-else-if="editAble && hasConfirm">{{ $t('confirm') }} </el-button> <el-button type="warning" @click="formSubmit('bc')" v-else-if="editAble">保存 </el-button> <el-button @click="visible = false" v-if="editAble||stepMarker">{{ $t('cancel') }}</el-button> <el-button type="info" @click="close()" v-else>{{ $t('close') }}</el-button> <slot name="footer"></slot> </template> </el-dialog> </template> <script> import cloneDeep from 'lodash/cloneDeep' import cloneDeep from 'lodash/cloneDeep' export default { name: 'ZtDialog', props: { title: String, column: { // 几列 type: String, default: '1' }, stepMarker:{ }, appendToBody: { type: Boolean, default: false }, hasConfirm: { type: Boolean, default: true }, editAble: { type: Boolean, default: true }, hasSubmit:{ type: Boolean, default: false }, hasSave:{ type: Boolean, default: false } }, data() { return { dataFormBack: null, visible: false //editAble: true // 是否可编辑 } }, computed: { _title() { if (this.title) { return this.title } else if (!this.editAble) { return this.$t('view') } else if(this.$parent.dataForm!==undefined) { return !this.$parent.dataForm.id ? this.$t('add') : this.$t('update') } } }, mounted() { this.dataFormBack = cloneDeep(this.$parent.dataForm) }, methods: { init(id, row, isView) { this.$nextTick(() => { // 清空表单校验 console.log(this.$parent.$refs.dataForm,id, row, isView,'this.$parent.$refs.dataForm') if (this.$parent.$refs.dataForm) { // dialog里面的form this.$parent.$refs.dataForm.resetFields() } this.editAble = isView !== true // 是否可编辑 // 设置dialog父页面初始化表单 this.$parent.dataForm = cloneDeep(this.dataFormBack) if (this.$parent.dataForm) { this.$parent.dataForm.id = id this.$parent.dataForm.disabled = isView === true // 表单是否可编辑 } if (this.$parent.init) { console.log(id,row,'id row') this.$parent.init(id, row) } if (id && this.$parent.getInfo) { this.$parent.getInfo() } }) this.open() }, // 表单提交 formSubmit() { let dataForm = this.$parent.$refs.dataForm if (dataForm) { dataForm.validate(async valid => { if (valid) { this.$emit('confirm') } else { this.$nextTick(() => { let isError = document.getElementsByClassName('is-error') isError[0].scrollIntoView({ // 滚动到指定节点 // 值有start,center,end,nearest,当前显示在视图区域中间 block: 'center', // 值有auto、instant,smooth,缓动动画(当前是慢速的) behavior: 'smooth' }) }) export default { name: 'ZtDialog', props: { title: String, column: { // 几列 type: String, default: '1' }, stepMarker: {}, appendToBody: { type: Boolean, default: false }, hasConfirm: { type: Boolean, default: false }, editAble: { type: Boolean, default: true }, hasSubmit: { type: Boolean, default: false }, hasSave: { type: Boolean, default: false } }) } else { this.$emit('confirm') }, data() { return { dataFormBack: null, visible: false //editAble: true // 是否可编辑 } }, computed: { _title() { if (this.title) { return this.title } else if (!this.editAble) { return this.$t('view') } else if (this.$parent.dataForm !== undefined) { return !this.$parent.dataForm.id ? this.$t('add') : this.$t('update') } } }, mounted() { this.dataFormBack = cloneDeep(this.$parent.dataForm) }, methods: { init(id, row, isView) { this.$nextTick(() => { // 清空表单校验 console.log(this.$parent.$refs.dataForm, id, row, isView, 'this.$parent.$refs.dataForm') if (this.$parent.$refs.dataForm) { // dialog里面的form this.$parent.$refs.dataForm.resetFields() } // this.editAble = isView !== true // 是否可编辑 // 设置dialog父页面初始化表单 this.$parent.dataForm = cloneDeep(this.dataFormBack) if (this.$parent.dataForm) { this.$parent.dataForm.id = id this.$parent.dataForm.disabled = isView === true // 表单是否可编辑 } if (this.$parent.init) { console.log(id, row, 'id row') this.$parent.init(id, row) } if (id && this.$parent.getInfo) { this.$parent.getInfo() } }) this.open() }, // 表单提交 formSubmit(submitType) { let dataForm = this.$parent.$refs.dataForm if (dataForm) { dataForm.validate(async valid => { if (valid) { this.$emit('confirm', submitType) } else { this.$nextTick(() => { let isError = document.getElementsByClassName('is-error') isError[0].scrollIntoView({ // 滚动到指定节点 // 值有start,center,end,nearest,当前显示在视图区域中间 block: 'center', // 值有auto、instant,smooth,缓动动画(当前是慢速的) behavior: 'smooth' }) }) } }) } else { this.$emit('confirm', submitType) } }, open() { this.visible = true }, close() { this.visible = false }, onOpen() { this.$emit('open') }, onClose() { this.$emit('close') } } }, open() { this.visible = true }, close() { this.visible = false }, onOpen() { this.$emit('open') }, onClose() { this.$emit('close') } } } </script> <style lang="scss" scoped> .dialog-column-1 { /deep/ .el-dialog { position: fixed; margin-top: 0 !important; top:50% !important; left: 50% !important; transform: translate(-50%, -50%); width: 50%; /*margin-top:7vh !important;*/ .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { width: 75%; } .dialog-column-1 { /deep/ .el-dialog { position: fixed; margin-top: 0 !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%); width: 50%; /*margin-top:7vh !important;*/ .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { width: 75%; } } } } .dialog-column-2 { /deep/ .el-dialog { width: 60%; position: fixed; margin-top: 0 !important; top:50% !important; left: 50% !important; transform: translate(-50%, -50%); .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { width: 50%; float: left; } .dialog-column-2 { /deep/ .el-dialog { width: 60%; position: fixed; margin-top: 0 !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%); .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { width: 50%; float: left; } } } } .dialog-column-3 { /deep/ .el-dialog { width: 75%; position: fixed; margin-top: 0 !important; top:50% !important; left: 50% !important; transform: translate(-50%, -50%); .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { //width: 33.33333%; float: left; } .dialog-column-3 { /deep/ .el-dialog { width: 75%; position: fixed; margin-top: 0 !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%); .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { //width: 33.33333%; float: left; } } } } .dialog-column-4 { /deep/ .el-dialog { width: 90%; position: fixed; margin-top: 0 !important; top:50% !important; left: 50% !important; transform: translate(-50%, -50%); .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { //width: 33.33333%; float: left; } .dialog-column-4 { /deep/ .el-dialog { width: 90%; position: fixed; margin-top: 0 !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%); .el-form > .el-form-item, .el-form .el-collapse-item__content > .el-form-item { //width: 33.33333%; float: left; } } } } /deep/ .el-form { padding: 15px; /deep/ .el-form { padding: 15px; .item-line-divider { width: 100%; height: 0px; float: left; .item-line-divider { width: 100%; height: 0px; float: left; } } } </style> web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -48,7 +48,7 @@ </el-table-column> <el-table-column prop="itemDentify" align="center" width="220" label="配置项标识"> <template v-slot="{ row }"> <el-input v-model="row.itemDentify" placeholder="配置项标识"></el-input> <el-input v-model="row.itemIdentify" placeholder="配置项标识"></el-input> </template> </el-table-column> <el-table-column prop="version" align="center" width="120" label="版本"> web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
@@ -1,12 +1,13 @@ <template> <zt-dialog ref="dialog" column="3" @confirm="formSubmit"> <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled" label-width="120px" class="circulationFormAuto"> <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit"> <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled" label-width="120px" class="circulationFormAuto"> <div> <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: -5px"> <span>{{dataForm.circulatOrder.code}}</span> </el-form-item> </div> <div style="border: 1px solid rgba(0,0,0,.2);width: 99%" > <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="circulationContentWidth"> <el-form-item class="marginTopAndMarginBottom" label="专业实验室" style="width: 32%"> <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="专业实验室"></el-input> @@ -31,7 +32,8 @@ <div style="padding-left:5px;padding-right:5px;"> <div style="padding: 5px">物品技术资料及数量:</div> <div class="table-container"> <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border :data="dataForm.technicalList" <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border :data="dataForm.technicalList" stripe> <el-table-column prop="no" align="center" width="60" label="序号"> <template slot-scope="scope"> @@ -53,30 +55,30 @@ <el-input v-model="row.identify" placeholder="版本"></el-input> </template> </el-table-column> <el-table-column prop="secretClass" label="密级" width="100" align="center"> <el-table-column prop="secretClass" label="密级" width="100" align="center"> <template v-slot="{ row }"> <!-- <el-input v-model="row.secretClass" placeholder="密级"></el-input>--> <!-- <el-input v-model="row.secretClass" placeholder="密级"></el-input>--> <zt-dict v-model="row.secretClass" dict="secret_class"></zt-dict> </template> </el-table-column> <el-table-column prop="medium" label="介质" width="100" align="center"> <el-table-column prop="medium" label="介质" width="100" align="center"> <template v-slot="{ row }"> <el-input v-model="row.medium" placeholder="介质"></el-input> </template> </el-table-column> <el-table-column prop="amount" label="数量" width="80" align="center"> <el-table-column prop="amount" label="数量" width="80" align="center"> <template v-slot="{ row }"> <el-input v-model="row.amount" placeholder="数量"></el-input> </template> </el-table-column> <el-table-column prop="remark" label="备注" width="100" align="center"> <el-table-column prop="remark" label="备注" width="100" align="center"> <template v-slot="{ row }"> <el-input v-model="row.remark" placeholder="备注"></el-input> </template> </el-table-column> <el-table-column fixed="right" prop="files" label="上传附件" width="300" align="center"> <el-table-column fixed="right" prop="files" label="上传附件" width="300" align="center"> <template v-slot="{ row }"> <!-- <zt-table-button @click="files(row.id)">上传附件</zt-table-button>--> <!-- <zt-table-button @click="files(row.id)">上传附件</zt-table-button>--> <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row" v-model="row.files"/> </template> @@ -94,7 +96,7 @@ 物品的其它要求 </div> <div style="width: calc(100% - 120px);"> <div class="el-border-left"> <div class="el-border-left"> <el-form-item label="物品是否需要返还" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0"> <zt-dict v-model="dataForm.circulatOrder.itemRequire" :radio="true" dict="is_or_not"></zt-dict> @@ -110,15 +112,15 @@ 物品接收人 </div> <div class="el-border-left-right acceptDate" style="width: 20%;;height: 80px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.itemAccept}} <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.itemAcceptor}} </el-form-item> </div> <div style="width: 52px;text-align: center;font-weight: 600"> 时间 </div> <div class="el-border-left-right acceptDate" style="width: 20%;height: 80px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.acceptDate}} </el-form-item> </div> @@ -130,16 +132,16 @@ <zt-dict v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> <el-form-item label="病毒库版本:" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0"> <el-input v-model="dataForm.circulatOrder.itemOther"></el-input> <el-input v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input> </el-form-item> </div> </div> <div class="el-flexCirculationDialog el-border-bottom"> <!--<div class="el-flexCirculationDialog el-border-bottom"> <div style="width: 112px;text-align: center;font-weight: 600"> 校准/检测接收人 </div> <div class="el-border-left-right" style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.itemAccept}} </el-form-item> </div> @@ -147,7 +149,7 @@ 时间 </div> <div class="el-border-left-right" style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.acceptDate}} </el-form-item> </div> @@ -159,21 +161,21 @@ <zt-dict v-model="dataForm.circulatOrder.cscs" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> </div> </div> </div>--> <div class="el-flexCirculationDialog el-border-bottom"> <div style="width: 112px;text-align: center;font-weight: 600"> 校准检测人 </div> <div class="el-border-left-right" style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.calibratDetect}} <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.calibratDetector}} </el-form-item> </div> <div style="width: 52px;text-align: center;font-weight: 600"> 时间 </div> <div class="el-border-left-right" style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.detectDate}} </el-form-item> </div> @@ -186,12 +188,12 @@ </el-form-item> </div> </div> <div class="el-flexCirculationDialog el-border-bottom"> <!-- <div class="el-flexCirculationDialog el-border-bottom"> <div style="width: 112px;text-align: center;font-weight: 600"> 物品入库人 </div> <div class="el-border-left-right" style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.warehouse}} </el-form-item> </div> @@ -199,7 +201,7 @@ 时间 </div> <div class="el-border-left-right" style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.warehouseDate}} </el-form-item> </div> @@ -211,21 +213,21 @@ <zt-dict v-model="dataForm.circulatOrder.warehouseSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> </div> </div> </div>--> <div class="el-flexCirculationDialog el-border-bottom"> <div style="width: 112px;text-align: center;font-weight: 600"> 物品发放人 </div> <div class="el-border-left-right " style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.itemIssue}} <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.itemIssuer}} </el-form-item> </div> <div style="width: 52px;text-align: center;font-weight: 600"> 时间 </div> <div class="el-border-left-right " style="width: 20%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.issueDate}} </el-form-item> </div> @@ -243,58 +245,11 @@ 备注 </div> <div class="el-border-left " style="width: 20%;height: 40px"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> {{dataForm.circulatOrder.itemAccept}} <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-input v-model="dataForm.circulatOrder.itemAcceptr"></el-input> </el-form-item> </div> </div> <!-- <div class="circulationContentWidth"> <el-form-item class="marginTopAndMarginBottom" label="物品接收人" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.itemAccept" placeholder="物品接收人"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom" label="时间" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.acceptDate" placeholder="时间"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom" label="情况说明" style="width: 32%"> <span>是否完成病毒查杀: <zt-dict v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict> </span> <span>病毒库版本:<el-input v-model="dataForm.circulatOrder.acceptSituation" placeholder="病毒库版本"></el-input></span> </el-form-item> <el-form-item class="marginTopAndMarginBottom3" label="校准检测人" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.calibratDetect" placeholder="校准检测人"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom3" label="时间" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.detectDate" placeholder="时间"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom3" label="情况说明" style="width: 32%"> <!– <el-input v-model="dataForm.circulatOrder.detectSituation" placeholder="情况说明"></el-input>–> <zt-dict v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> <el-form-item class="marginTopAndMarginBottom2" label="物品入库人" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.warehouse" placeholder="物品入库人"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom2" label="时间" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.warehouseDate" placeholder="时间"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom2" label="情况说明" style="width: 32%"> <!– <el-input v-model="dataForm.circulatOrder.warehouseSituation" placeholder="情况说明"></el-input>–> <zt-dict v-model="dataForm.circulatOrder.warehouseSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> <el-form-item class="marginTopAndMarginBottom2" label="物品发放人" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.itemIssue" placeholder="物品发放人"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom2" label="时间" style="width: 32%"> <el-input v-model="dataForm.circulatOrder.issueDate" placeholder="时间"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom2" label="情况说明" style="width: 32%"> <!– <el-input v-model="dataForm.circulatOrder.issueSituation" placeholder="情况说明"></el-input>–> <zt-dict v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> <el-form-item class="marginTopAndMarginBottom2 lastChild" label="备注" style="width: 100%"> <el-input v-model="dataForm.circulatOrder.remark" placeholder="备注"></el-input> </el-form-item> </div>--> </div> </el-form> </zt-dialog> @@ -304,52 +259,70 @@ export default { data() { return { stepMarker: '', title: '查看', dataForm: { id: '', circulatOrder:{ circulatOrder: { code: '1', itemAccept: '', itemRequire: '', itemOther:'', acceptSituation:'', itemOther: '', acceptSituation: '', acceptDate: '', calibratDetect: '', calibratDetector: '', detectDate: '', detectSituation: '', warehouse: '', warehouseDate: '', warehouseSituation: '', itemIssue: '', itemIssuer: '', issueDate: '', issueSituation: '', remark: '', virusLibraryVersion:'', itemAcceptor:'' }, project: { softwareIdentity: '', softwareName: '', }, testAgencyInfo: { agencyName:'', agencyName: '', }, technicalList:[] technicalList: [], flowInfoDto: {} } } }, methods: { indexFormat(index){ indexFormat(index) { return index += 1 }, init(id,row){ this.dataForm.id = row.id init(id, row) { if (id) { this.dataForm.id = id } else { this.dataForm.id = row.id } this.dataForm.projectId = row.projectId // this.dataForm.disabled this.getInfo() console.log(this.dataForm.id,this.dataForm.projectId,'params params') if (!this.dataForm.disabled) { if (!row.stepMarker) { this.stepMarker = 'wplz_first' this.title = '物品接收' } else { this.title = row.stepName this.stepMarker = row.stepMarker } } console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker') }, addCirculatRow(){ addCirculatRow() { this.dataForm.technicalList.push({}) this.$nextTick(()=>{ const tableBody=this.$refs.tableCirculatOrderList.$el.querySelector('.el-table__body-wrapper') this.$nextTick(() => { const tableBody = this.$refs.tableCirculatOrderList.$el.querySelector('.el-table__body-wrapper') tableBody.scrollTop = tableBody.scrollHeight; }) }, @@ -359,55 +332,81 @@ circulatOrderid: this.dataForm.id, projectId: this.dataForm.projectId } let res = await this.$http.get(`/itemCirculatOrder/ItemCirculatOrder/getDto`,{params: params}) let res = await this.$http.get(`/itemCirculatOrder/ItemCirculatOrder/getDto`, {params: params}) this.dataForm = { ...this.dataForm, ...res.data } console.log(this.dataForm,"getInfo this.dataForm") console.log(this.dataForm, "getInfo this.dataForm") }, // 表单提交 async formSubmit() { console.log(this.dataForm,"this.dataForm11111") async formSubmit(submitType) { console.log(this.dataForm, "this.dataForm11111") if (submitType == 'tj' || submitType == 'bl') { let flowInfo = { flowCode: 'wplz', stepIdMark: this.stepMarker, submitType: submitType } this.dataForm.flowInfoDto = flowInfo; } let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/itemCirculatOrder/ItemCirculatOrder/', this.dataForm) if (res.success) { /* if (submitType == 'tj') { console.log(res, 'bbbb') let res2 = await this.$http.get('/wf/startFlow', submitForm) if (res2.success) { let res3 = await this.$http.get('/wf/approvePass', submitForm) if (res3.success) { } } } else if (submitType == 'bl') { let res2 = await this.$http.get('/wf/approvePass', submitForm) if (res2.success) { } }*/ await this.$tip.success() this.$refs.dialog.close() this.$emit('refreshDataList') } } } } </script> <style> .el-flexCirculationDialog{ display: flex; align-items: center } .circulationContentWidth > .el-form-item > .el-form-item__content { width: calc(100% - 120px); } .circulationContentWidth > .el-form-item.lastChild > .el-form-item__content { width: calc(100% - 142px); } .circulationFormAuto .marginTopAndMarginBottom { margin-top: 10px !important; margin-bottom: 0 !important; } .el-flexCirculationDialog { display: flex; align-items: center } .circulationFormAuto .marginTopAndMarginBottom2 { margin-top: -10px !important; margin-bottom: 10px !important; } .circulationFormAuto .marginTopAndMarginBottom3 { margin-top: 0 !important; margin-bottom: 10px !important; } .acceptDate> .el-form-item > .el-form-item__content { line-height: 80px; } .circulationFormAuto .el-radio { margin-right: 10px; } .circulationContentWidth > .el-form-item > .el-form-item__content { width: calc(100% - 120px); } .circulationContentWidth > .el-form-item.lastChild > .el-form-item__content { width: calc(100% - 142px); } .circulationFormAuto .marginTopAndMarginBottom { margin-top: 10px !important; margin-bottom: 0 !important; } .circulationFormAuto .marginTopAndMarginBottom2 { margin-top: -10px !important; margin-bottom: 10px !important; } .circulationFormAuto .marginTopAndMarginBottom3 { margin-top: 0 !important; margin-bottom: 10px !important; } .acceptDate > .el-form-item > .el-form-item__content { line-height: 80px; } .circulationFormAuto .el-radio { margin-right: 10px; } </style> web/src/views/modules/project/Project-select.vue
@@ -1,5 +1,5 @@ <template> <zt-dialog ref="dialog" column="2" :hasConfirm="false"> <zt-dialog ref="dialog" column="2" title="选择项目" :editAble="false" :hasConfirm="false"> <el-card shadow="never" class="aui-card--fill"> <div class="mod-project-project}"> <zt-table-wraper ref="tableObj" query-url="/project/Project/page" delete-url="/project/Project" v-slot="{ table }"> @@ -32,7 +32,6 @@ v-adaptive="{bottomOffset:150}" @row-dblclick="selectedProject" border @selection-change="table.selectionChangeHandle"> <el-table-column type="selection" align="center" width="40"/> <el-table-column prop="entrustUnitName" label="委托单位名称"/> <el-table-column prop="developUnitName" label="开发单位名称"/> <el-table-column prop="softwareName" label="软件名称"/> web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -1,5 +1,5 @@ <template> <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> <zt-dialog ref="dialog" column="2" @confirm="formSubmit" > <el-form ref="form" :inline="true" :model="dataForm" :disabled="dataForm.disabled" label-width="93px" class="weiTuoDanAuto" style="padding-top: 0"> <div class="DManageForm"> @@ -376,7 +376,7 @@ <div class="" style="width: 100%;"> <div class="el-flex" style="height: 40px"> <div style="width: 60%"> <zt-select v-model="dataForm.softwareTestOrder.contractSign" url="/sys/userEx/getUsersList" :multiple="true" :clearable="true" placeholder="承托方人员"/> <zt-select v-model="dataForm.softwareTestOrder.contractSign" url="/sys/userEx/getUsersList" placeholder="承托方人员"/> <!-- <span>{{ dataForm.contractSign }}</span>--> </div> <div class="el-flex" style="margin-left: 10%"> web/src/views/modules/sys/task/stay-task.vue
@@ -3,7 +3,7 @@ <!-- <zt-table-wraper ref="tableObj" query-url="/newPlan/taskCenter/page" :paging="false" :lazy="true" v-slot="{ table }" paging-layout="total, prev, pager, next">--> <el-form :inline="true" :model="dataForm" @keyup.enter.native="getQuery()"> <el-input type="text" v-model="dataForm.djxlSystem" v-if="false" /> <el-input type="text" v-model="dataForm.djxlSystem" v-if="false"/> </el-form> <el-table ref="table" :height="getTransformHeight(transformHeight)" @@ -19,7 +19,7 @@ </el-table-column> <el-table-column align="left" prop="topic" label="工程" width="150"/> <!-- <el-table-column align="left" prop="title" label="流程名称" width="180"/>--> <el-table-column align="left" prop="remark" label="摘要" /> <el-table-column align="left" prop="remark" label="摘要"/> <el-table-column align="center" prop="stepName" label="当前环节" width="150px"/> <el-table-column align="center" prop="receiveTime" label="上一环节办理时间" width="180px"/> @@ -27,10 +27,17 @@ <el-table-column align="center" prop="finishTime" label="计划完成时间" width="160px"/> <!-- <el-table-column align="center" prop="statusName" label="状态" width="100px"/>--> <el-table-column align="center" prop="idleDays" label="停留时间(天)" width="150px"/> <zt-table-column-handle fixed="right" :table="table" :has-edit="false" :has-delete="false" :has-view="false" width="120px"> <zt-table-column-handle fixed="right" :table="table" :has-edit="false" :has-delete="false" :has-view="false" width="120px"> <template v-slot="{ row }"> <zt-table-button v-if="row.stepMarker!='hxsy_czsp'&&row.stepMarker!='hxsy_bzsp'&&row.stepMarker!='xbsy_czsp'&&row.stepMarker!='xbsy_bzsp'" @click="createTask(row)">办理</zt-table-button> <zt-table-button v-if="row.stepMarker=='hxsy_czsp'||row.stepMarker=='hxsy_bzsp'||row.stepMarker=='xbsy_czsp'||row.stepMarker=='xbsy_bzsp'" @click="createTask(row)">查阅</zt-table-button> <zt-table-button v-if="row.stepMarker!='hxsy_czsp'&&row.stepMarker!='hxsy_bzsp'&&row.stepMarker!='xbsy_czsp'&&row.stepMarker!='xbsy_bzsp'" @click="createTask(row)">办理 </zt-table-button> <zt-table-button v-if="row.stepMarker=='hxsy_czsp'||row.stepMarker=='hxsy_bzsp'||row.stepMarker=='xbsy_czsp'||row.stepMarker=='xbsy_bzsp'" @click="createTask(row)">查阅 </zt-table-button> <zt-table-button @click="flowChart(row)">流程图</zt-table-button> <zt-table-button v-if="row.flowCode === 'yearPlan2'" @click="getFlowTrack (row)">流程轨迹</zt-table-button> </template> @@ -43,7 +50,8 @@ @infinite="infiniteHandler" ref="infiniteLoading" force-use-infinite-wrapper=".alreadyTaskPushTable .el-table__body-wrapper"> <div slot="no-more" style="margin-top: 10px;margin-bottom: 10px;"><span v-if="dataListAll.length > pageSize">没有更多了</span></div> <div slot="no-more" style="margin-top: 10px;margin-bottom: 10px;"><span v-if="dataListAll.length > pageSize">没有更多了</span> </div> </infinite-loading> </el-table> <!-- 待办任务弹窗弹窗, 新增 / 修改 --> @@ -63,22 +71,22 @@ page: 1, pageSize: 30, dataLoading: false, dataList:[], dataListAll:[], dataList: [], dataListAll: [], dataForm: { djxlSystem:'' djxlSystem: '' }, dialogVisible: false, existConstructionInfo: false } }, props:{ system:{ type:String props: { system: { type: String }, transformHeight:{ type:Boolean, default:false transformHeight: { type: Boolean, default: false } }, watch: { @@ -87,21 +95,19 @@ // this.getIsExistConstructionInfo() this.getQuery() }, 'tableBottomOffset'(){ console.log(this.tableBottomOffset,'tableBottomOffset') 'tableBottomOffset'() { console.log(this.tableBottomOffset, 'tableBottomOffset') } }, computed:{ }, computed: {}, components: { InfiniteLoading, ItemCirculatOrder }, created() { if (this.$route.path.indexOf('taskCenter')>0 || this.system=='smj'){ if (this.$route.path.indexOf('taskCenter') > 0 || this.system == 'smj') { this.transformHeight = true }else{ } else { this.transformHeight = false } }, @@ -111,7 +117,7 @@ } this.dataForm.djxlSystem = Cookies.get('djxlSystem') this.getQuery() this.$EventBus.$on('newProject',()=>{ this.$EventBus.$on('newProject', () => { this.getQuery() }) }, @@ -159,13 +165,13 @@ this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset'); }); }, async getQuery(){ async getQuery() { this.handleInfiniteLoadingBeforeGet() this.dataLoading = true let params = { djxlSystem: this.dataForm.djxlSystem, } let res = await this.$http.get(`/task/taskCenter/page`,{ let res = await this.$http.get(`/task/taskCenter/page`, { params: params }) if (res.success) { @@ -176,12 +182,12 @@ this.dataLoading = true } }, getTransformHeight(transformHeight){ let Height=document.documentElement.clientHeight if(transformHeight){ return Height-(650-403) }else{ return Height-650 getTransformHeight(transformHeight) { let Height = document.documentElement.clientHeight if (transformHeight) { return Height - (650 - 403) } else { return Height - 650 } }, async reCall(row) { @@ -194,14 +200,14 @@ this.getQuery() }, flowChart(row) { this.$emit('fatherMethod',row) this.$emit('fatherMethod', row) }, async getFlowTrack(row){ console.log(row,'getFlowTrack row') if(row){ let params={ flowCode:row.flowCode, bizId:row.bizId async getFlowTrack(row) { console.log(row, 'getFlowTrack row') if (row) { let params = { flowCode: row.flowCode, bizId: row.bizId } this.$refs.processTrajectory.$refs.dialog.init(params) } @@ -209,11 +215,10 @@ async createTask(row) { console.log(row, "task row"); if (row.flowCode === 'wplz') { this.$refs.itemCirculatOrder.$refs.dialog.init(row) this.$refs.itemCirculatOrder.$refs.dialog.init(row.bizId, row) } else if (row.flowCode === 'aaa') { //this.$refs.itemCirculatOrder.$refs.dialog.init(row) } else { } else { if (row.stepRouterId === null) { this.$tip.alert("没有配置菜单id") return; web/src/views/modules/sys/task/taskCenter.vue
@@ -45,16 +45,16 @@ }, async tabClick(tab, event) { if (tab.index === '1') { let res = await this.$http.get('/newPlan/taskCenter/pageDone') let res = await this.$http.get('/task/taskCenter/pageDone') this.$refs.alreadyTask.getQuery() } if (tab.index === '0') { let res = await this.$http.get('/newPlan/taskCenter/page') let res = await this.$http.get('/task/taskCenter/page') this.$refs.stayTask.getStayTask() } }, async oneKeyDoneCy() { let res = await this.$http['put'](`/newPlan/taskCenter/oneKeyDoneCy`) let res = await this.$http['put'](`/task/taskCenter/oneKeyDoneCy`) if (res.success) { await this.$tip.success() this.$refs.stayTask.getStayTask() zt/core/src/main/java/com/zt/modules/workflow/dto/FlowInfoDto.java
New file @@ -0,0 +1,15 @@ package com.zt.modules.workflow.dto; import lombok.Data; import java.util.Date; @Data public class FlowInfoDto { String id; String bizId; String bizGroupId; String submitType; String flowCode; String stepIdMark; } zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
@@ -355,6 +355,16 @@ if (existsUsers.size() == 0) { throw new RuntimeException("没有符合(" + wfDef.getName() + ")流程的下一步(" + currentStep.getName() + ")执行人!"); } String updateSql = currentStep.getUpdateSql(); if (org.apache.commons.lang3.StringUtils.isNotBlank(updateSql)) { updateSql = updateSql.replace("${bizId}", bizId.toString()); updateSql = updateSql.replace("${bizId}", bizId.toString()); updateSql = updateSql.replace("${nickName}", UserContext.getUser().getRealName()); updateSql = updateSql.replace("${userId}", UserContext.getUser().getId().toString()); baseDao.exeSql(updateSql); } } else { taskParamDto.setUser(null); taskParamDto.setGroupId2(null); @@ -367,7 +377,8 @@ if (org.apache.commons.lang3.StringUtils.isNotBlank(updateSql)) { updateSql = updateSql.replace("${bizId}", bizId.toString()); updateSql = updateSql.replace("${bizId}", bizId.toString()); updateSql = updateSql.replace("${bizId}", bizId.toString()); updateSql = updateSql.replace("${nickName}", UserContext.getUser().getRealName()); updateSql = updateSql.replace("${userId}", UserContext.getUser().getId().toString()); baseDao.exeSql(updateSql); }