6
jinlin
2023-11-29 b21945e7dea2daa8b30bee3cdd4bca91277e3b5f
6
19个文件已修改
1个文件已添加
334 ■■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseConfigItemDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseConfigItemService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/dto/ItemCirculatOrderDto.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/packages/components/zt-dialog/src/zt-dialog.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue 129 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Project-select.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/sys/task/stay-task.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/sys/task/taskCenter.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/workflow/dto/FlowInfoDto.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
@@ -61,7 +64,8 @@
    private ItemCirculatOrderTechnicalService technicalService;
    @Autowired
    private SoftwareTestOrderService softwareTestOrderService;
    private WorkflowService workflowService;
    /**
     * 分页查询
     *
@@ -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;
    }
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
    <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 m.is_delete = 0
            <if test="projectId!=null">
                and s.project_id = ${projectId}
            </if>
        </where>
        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
@@ -12,14 +12,23 @@
    @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">提交
            <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>
      <el-button type="warning" @click="formSubmit()"  v-show="!stepMarker">保存
            </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="info" @click="close()" v-show="!editAble">{{ $t('close') }}</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>
@@ -35,16 +44,14 @@
        type: String,
        default: '1'
      },
      stepMarker:{
      },
            stepMarker: {},
      appendToBody: {
        type: Boolean,
        default: false
      },
      hasConfirm: {
        type: Boolean,
        default: true
                default: false
      },
      editAble: {
        type: Boolean,
@@ -89,7 +96,7 @@
            this.$parent.$refs.dataForm.resetFields()
          }
          this.editAble = isView !== true // 是否可编辑
                    // this.editAble = isView !== true // 是否可编辑
          // 设置dialog父页面初始化表单
          this.$parent.dataForm = cloneDeep(this.dataFormBack)
@@ -109,12 +116,12 @@
        this.open()
      },
      // 表单提交
      formSubmit() {
            formSubmit(submitType) {
        let dataForm = this.$parent.$refs.dataForm
        if (dataForm) {
          dataForm.validate(async valid => {
            if (valid) {
              this.$emit('confirm')
                            this.$emit('confirm', submitType)
            } else {
              this.$nextTick(() => {
                let isError = document.getElementsByClassName('is-error')
@@ -129,7 +136,7 @@
            }
          })
        } else {
          this.$emit('confirm')
                    this.$emit('confirm', submitType)
        }
      },
      open() {
@@ -171,6 +178,7 @@
      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;
@@ -186,6 +194,7 @@
      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;
@@ -201,6 +210,7 @@
      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;
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,6 +1,7 @@
<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>
@@ -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">
@@ -111,7 +113,7 @@
          </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}}
              {{dataForm.circulatOrder.itemAcceptor}}
            </el-form-item>
          </div>
          <div style="width: 52px;text-align: center;font-weight: 600">
@@ -130,11 +132,11 @@
              <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>
@@ -159,14 +161,14 @@
              <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}}
              {{dataForm.circulatOrder.calibratDetector}}
            </el-form-item>
          </div>
          <div style="width: 52px;text-align: center;font-weight: 600">
@@ -186,7 +188,7 @@
            </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>
@@ -211,14 +213,14 @@
              <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}}
              {{dataForm.circulatOrder.itemIssuer}}
            </el-form-item>
          </div>
          <div style="width: 52px;text-align: center;font-weight: 600">
@@ -244,57 +246,10 @@
          </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-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%">
&lt;!&ndash;              <el-input v-model="dataForm.circulatOrder.detectSituation" placeholder="情况说明"></el-input>&ndash;&gt;
              <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%">
&lt;!&ndash;              <el-input v-model="dataForm.circulatOrder.warehouseSituation" placeholder="情况说明"></el-input>&ndash;&gt;
              <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%">
&lt;!&ndash;              <el-input v-model="dataForm.circulatOrder.issueSituation" placeholder="情况说明"></el-input>&ndash;&gt;
              <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,6 +259,8 @@
  export default {
    data() {
      return {
        stepMarker: '',
        title: '查看',
        dataForm: {
          id: '',
          circulatOrder:{
@@ -313,16 +270,18 @@
            itemOther:'',
            acceptSituation:'',
            acceptDate: '',
            calibratDetect: '',
            calibratDetector: '',
            detectDate: '',
            detectSituation: '',
            warehouse: '',
            warehouseDate: '',
            warehouseSituation: '',
            itemIssue: '',
            itemIssuer: '',
            issueDate: '',
            issueSituation: '',
            remark: '',
            virusLibraryVersion:'',
            itemAcceptor:''
          },
          project: {
            softwareIdentity: '',
@@ -331,7 +290,8 @@
          testAgencyInfo: {
            agencyName:'',
          },
          technicalList:[]
          technicalList: [],
          flowInfoDto: {}
        }
      }
    },
@@ -340,11 +300,24 @@
        return index += 1
      },
      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(){
        this.dataForm.technicalList.push({})
@@ -367,15 +340,35 @@
        console.log(this.dataForm,"getInfo this.dataForm")
      },
      // 表单提交
      async formSubmit() {
      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')
        }
      }
    }
  }
@@ -385,12 +378,15 @@
  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;
@@ -400,13 +396,16 @@
  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;
}
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
@@ -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
@@ -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>
    <!-- 待办任务弹窗弹窗, 新增 / 修改 -->
@@ -91,9 +99,7 @@
        console.log(this.tableBottomOffset,'tableBottomOffset')
      }
    },
    computed:{
    },
    computed: {},
    components: {
      InfiniteLoading,
      ItemCirculatOrder
@@ -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);
            }