From efc529af784bf35daf6e8d1d6108467cdcf8f663 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期四, 07 十二月 2023 16:25:39 +0800 Subject: [PATCH] 修改 --- web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue | 12 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java | 8 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java | 121 ++++++ modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java | 203 ++++++++++ modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java | 5 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java | 6 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java | 25 + modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java | 14 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java | 35 + modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java | 10 web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue | 33 web/src/views/modules/configItemChange/ConfigItemChange.vue | 70 +++ web/src/views/modules/sys/task/stay-task.vue | 2 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java | 106 +++++ web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue | 507 +++++++++++++++++++++++++ web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue | 15 web/src/views/modules/testCheckOrder/TestCheckOrder.vue | 16 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java | 1 18 files changed, 1,135 insertions(+), 54 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java new file mode 100644 index 0000000..77fd3df --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java @@ -0,0 +1,121 @@ +package com.zt.life.modules.configItemChange.controller; + + +import com.zt.common.annotation.LogOperation; +import com.zt.common.annotation.QueryParam; +import com.zt.common.constant.Constant; +import com.zt.common.db.query.QueryFilter; +import com.zt.common.servlet.PageResult; +import com.zt.common.servlet.Result; +import com.zt.common.validator.AssertUtils; +import com.zt.common.validator.ValidatorUtils; +import com.zt.common.validator.group.AddGroup; +import com.zt.common.validator.group.DefaultGroup; +import com.zt.common.validator.group.UpdateGroup; +import com.zt.life.modules.configItemChange.dto.ConfigItemChangeDto; +import com.zt.life.modules.configItemChange.model.ConfigItemChange; +import com.zt.life.modules.configItemChange.service.ConfigItemChangeService; +import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem; +import com.zt.life.sys.dto.OssDto; +import com.zt.life.sys.service.SysOssConfigService; +import com.zt.modules.coderule.service.SysCodeRuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * config_item_warehouse + * + * @author zt generator + * @since 1.0.0 2023-11-27 + */ +@RestController +@RequestMapping("/configItemWarehouse/ConfigItemWarehouse/") +@Api(tags="config_item_warehouse") +public class ConfigItemChangeController { + @Autowired + private ConfigItemChangeService configItemChangeService; + + @Autowired + private SysCodeRuleService sysCodeRuleService; + + @Autowired + private SysOssConfigService sysOssConfigService; + @GetMapping("page") + @ApiOperation("鍒嗛〉") + @ApiImplicitParams({ + @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), + @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), + @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), + @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), + @ApiImplicitParam(name = "code", value = "閰嶇疆椤瑰叆搴撶紪鍙�", dataType = Constant.QT.STRING, format = "a.code^LK"), + @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "p.code^EQ"), + @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^EQ"), + @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "a.library_type^EQ") }) + public PageResult<ConfigItemChange> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ + List<ConfigItemChange> configItemChange = configItemChangeService.page(queryFilter); + return PageResult.ok(configItemChange); + } + + @GetMapping("getDto") + @ApiOperation("淇℃伅") + public Result<ConfigItemChangeDto> getDto(Long projectId, Long warehouseId) { + ConfigItemChangeDto data = configItemChangeService.getDto(projectId, warehouseId); + if (warehouseId!=null) { + for (WarehouseConfigItem configItem : data.getConfigItemList()) { + Long configItemId = configItem.getId(); + OssDto ossDto = sysOssConfigService.getOssByBusiType(configItemId, "config_item_warehouse"); + if (ossDto != null) { + configItem.setFiles(ossDto); + } + } + } + return Result.ok(data); + } + + @PostMapping + @ApiOperation("鏂板") + @LogOperation("鏂板") + public Result insert(@RequestBody ConfigItemChangeDto configItemDto){ + //鏁堥獙鏁版嵁 + ValidatorUtils.validateEntity(configItemDto, AddGroup.class, DefaultGroup.class); + Map<String, String> map = new HashMap<>(); + map.put("funCode", "config_item_warehouse"); + map.put("projectId",configItemDto.getProjectId().toString()); + configItemDto.getConfigItemChange().setCode(sysCodeRuleService.getNewCode(map)); + Boolean result = configItemChangeService.save(configItemDto); + return Result.ok(); + } + + @PutMapping + @ApiOperation("淇敼") + @LogOperation("淇敼") + public Result update(@RequestBody ConfigItemChangeDto configItemDto){ + //鏁堥獙鏁版嵁 + ValidatorUtils.validateEntity(configItemDto, UpdateGroup.class, DefaultGroup.class); + Boolean result = configItemChangeService.save(configItemDto); + + return Result.ok(); + } + + @DeleteMapping("deleteConfigItem") + @ApiOperation("鍒犻櫎") + @LogOperation("鍒犻櫎") + public Result delete(@RequestBody Long[] ids){ + //鏁堥獙鏁版嵁 + AssertUtils.isArrayEmpty(ids, "id"); + configItemChangeService.delete(ids); + + return Result.ok(); + } + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java new file mode 100644 index 0000000..7cb8316 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java @@ -0,0 +1,25 @@ +package com.zt.life.modules.configItemChange.dao; + +import com.zt.common.dao.BaseDao; +import com.zt.life.modules.configItemChange.model.ConfigItemChange; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + + +/** + * config_item_warehouse + * + * @author zt generator + * @since 1.0.0 2023-11-27 + */ +@Mapper +public interface ConfigItemChangeDao extends BaseDao<ConfigItemChange> { + + List<ConfigItemChange> getList(Map<String, Object> params); + + List<WarehouseCmAudit> itemList(String dictType); + + String checkIdentify(String code,String projectCode); +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java new file mode 100644 index 0000000..53997d9 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java @@ -0,0 +1,35 @@ +package com.zt.life.modules.configItemChange.dto; + +import com.zt.life.modules.configItemChange.model.ConfigItemChange; +import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit; +import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem; +import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit; +import com.zt.life.modules.project.model.Project; +import com.zt.modules.workflow.dto.FlowInfoDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class ConfigItemChangeDto { + private Long id; + private Long projectId; + private Long warehouseId; + + @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅") + private Project project; + @ApiModelProperty(value = "閰嶇疆椤瑰叆搴�") + private ConfigItemChange configItemChange; + + private FlowInfoDto flowInfoDto; + + @ApiModelProperty(value = "鍏ュ簱閰嶇疆椤�") + private List<WarehouseConfigItem> configItemList = new ArrayList<>(); + @ApiModelProperty(value = "CM瀹℃牳") + private List<WarehouseCmAudit> cmAuditList = new ArrayList<>(); + @ApiModelProperty(value = "QA瀹℃牳") + private List<WarehouseQaAudit> qaAuditList = new ArrayList<>(); +} + diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java new file mode 100644 index 0000000..861ec62 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java @@ -0,0 +1,106 @@ +package com.zt.life.modules.configItemChange.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.zt.common.entity.BusiEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * config_item_warehouse + * + * @author zt generator + * @since 1.0.0 2023-11-27 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("config_item_warehouse") +public class ConfigItemChange extends BusiEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "椤圭洰ID") + private Long projectId; + + + + @ApiModelProperty(value = "閰嶇疆椤瑰叆搴撶紪鍙�") + private String code; + + @ApiModelProperty(value = "鐢宠浜�") + private String applicant; + + @ApiModelProperty(value = "鐢宠鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date applyDate; + + @ApiModelProperty(value = "搴撶被鍨�") + private String libraryType; + + @ApiModelProperty(value = "QA瀹℃牳缁撴灉") + private String qaAuditResults; + + @ApiModelProperty(value = "QA瀹℃牳浜�") + private String qaAuditor; + + @ApiModelProperty(value = "QA瀹℃牳浜篒D") + private String qaAuditorId; + + @ApiModelProperty(value = "QA瀹℃牳鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date qaAuditDate; + + @ApiModelProperty(value = "CM瀹℃牳缁撴灉") + private String cmAuditResults; + + @ApiModelProperty(value = "CM瀹℃牳浜�") + private String cmAuditor; + + @ApiModelProperty(value = "CM瀹℃牳浜篒D") + private String cmAuditorId; + + @ApiModelProperty(value = "CM瀹℃牳鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date cmAuditDate; + + @ApiModelProperty(value = "鎵瑰噯鎰忚") + private String approvalOpinions; + + @ApiModelProperty(value = "鎵瑰噯绛惧瓧") + private String approvalSign; + + @ApiModelProperty(value = "鎵瑰噯鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date approvalDate; + + @ApiModelProperty(value = "椤圭洰CM鎿嶄綔") + private String projectCmOperations; + + @ApiModelProperty(value = "鎿嶄綔浜�") + private String operator; + + @ApiModelProperty(value = "鎿嶄綔浜篒D") + private String operatorId; + + @ApiModelProperty(value = "鎿嶄綔鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date operateDate; + + @ApiModelProperty(value = "澶囨敞") + private String remark; + + @ApiModelProperty(value = "骞翠唤") + private String year; + + @TableField(exist = false) + @ApiModelProperty(value = "椤圭洰鍚嶇О") + private String softwareName; + + @TableField(exist = false) + @ApiModelProperty(value = "椤圭洰缂栧彿") + private String projectCode; + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java new file mode 100644 index 0000000..8cc5af7 --- /dev/null +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java @@ -0,0 +1,203 @@ +package com.zt.life.modules.configItemChange.service; + +import com.zt.common.db.query.QueryFilter; +import com.zt.common.service.BaseService; +import com.zt.life.modules.configItemChange.dao.ConfigItemChangeDao; +import com.zt.life.modules.configItemChange.dto.ConfigItemChangeDto; +import com.zt.life.modules.configItemChange.model.ConfigItemChange; +import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit; +import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem; +import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit; +import com.zt.life.modules.configItemWarehouse.service.WarehouseCmAuditService; +import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService; +import com.zt.life.modules.configItemWarehouse.service.WarehouseQaAuditService; +import com.zt.life.modules.project.service.ProjectService; +import com.zt.life.modules.testCheckOrder.model.TestCheckOrder; +import com.zt.life.modules.testCheckOrder.service.TestCheckOrderService; +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 java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * config_item_warehouse + * + * @author zt generator + * @since 1.0.0 2023-11-27 + */ +@Service +public class ConfigItemChangeService extends BaseService<ConfigItemChangeDao, ConfigItemChange> { + @Autowired + private SysOssConfigService sysOssConfigService; + + @Autowired + private SysOssService sysOssService; + + @Autowired + private WorkflowService workflowService; + + @Autowired + private SysCodeRuleService sysCodeRuleService; + + @Autowired + private ProjectService projectService; + + @Autowired + private WarehouseCmAuditService cmAuditService; + + @Autowired + private WarehouseQaAuditService qaAuditService; + + @Autowired + private WarehouseConfigItemService configItemService; + + @Autowired + private TestCheckOrderService testCheckOrderService; + + /** + * 鍒嗛〉鏌ヨ + * + * @param queryFilter + * @return + */ + public List<ConfigItemChange> page(QueryFilter queryFilter) { + return baseDao.getList(queryFilter.getQueryParams()); + } + + /** + * 鍒犻櫎 + * + * @param ids + */ + public void delete(Long[] ids) { + super.deleteLogic(ids); + } + + public Boolean save(ConfigItemChangeDto configItemDto) { + Long warehouseId = configItemDto.getConfigItemChange().getId(); + if (warehouseId != null) + baseDao.updateById(configItemDto.getConfigItemChange()); + else { + Map<String, String> map = new HashMap<>(); + map.put("funCode", "config_item_warehouse"); + map.put("projectId", configItemDto.getProjectId().toString()); + configItemDto.getConfigItemChange().setProjectId(configItemDto.getProjectId()); + configItemDto.getConfigItemChange().setCode(sysCodeRuleService.getNewCode(map)); + baseDao.insert(configItemDto.getConfigItemChange()); + warehouseId = configItemDto.getConfigItemChange().getId(); + } + + for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) { + configItem.setWarehouseId(warehouseId); + if (configItem.getId() != null) { + if (configItem.getCheckId()!=null){ + String code ="719CTC-09-ST"; + String projectCode = configItemDto.getProject().getCode(); + if (configItem.getItemName().equals("杞欢娴嬭瘯璁″垝")){ + code=code+"P"; + }else if (configItem.getItemName().equals("杞欢娴嬭瘯璇存槑")){ + code=code+"D"; + }else if (configItem.getItemName().equals("杞欢娴嬭瘯璁板綍")){ + code=code+"L"; + }else if (configItem.getItemName().equals("杞欢娴嬭瘯鎶ュ憡")){ + code=code+"R"; + } + configItem.setItemIdentify(code+"-"+projectCode); + } + configItemService.update(configItem); + } else { + configItem.setWarehouseId(warehouseId); + configItemService.insert(configItem); + } + Long checkId = configItem.getCheckId(); + if (checkId != null) { + TestCheckOrder testCheckOrder = testCheckOrderService.get(checkId); + if (testCheckOrder.getConfigItemId() == null) { + Long configItemId = configItem.getId(); + testCheckOrder.setConfigItemId(configItemId); + testCheckOrderService.update(testCheckOrder); + } + } + sysOssConfigService.updateOss(configItem.getId(), configItem.getFiles());// 淇濆瓨闄勪欢 + } + + for (WarehouseCmAudit cmAudit : configItemDto.getCmAuditList()) { + cmAudit.setWarehouseId(warehouseId); + if (cmAudit.getId() != null) { + cmAuditService.update(cmAudit); + } else { + cmAudit.setWarehouseId(warehouseId); + cmAuditService.insert(cmAudit); + } + } + + for (WarehouseQaAudit qaAudit : configItemDto.getQaAuditList()) { + qaAudit.setWarehouseId(warehouseId); + if (qaAudit.getId() != null) { + qaAuditService.update(qaAudit); + } else { + qaAudit.setWarehouseId(warehouseId); + qaAuditService.insert(qaAudit); + } + } + + Long bizId = configItemDto.getConfigItemChange().getId(); + FlowInfoDto flowInfoDto = configItemDto.getFlowInfoDto(); + + if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) { + if ("tj".equals(flowInfoDto.getSubmitType())) { + workflowService.startFlow(flowInfoDto.getFlowCode(), bizId); + } + workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark()); + } + return true; + } + + public ConfigItemChangeDto getDto(Long projectId, Long warehouseId) { + ConfigItemChangeDto data = new ConfigItemChangeDto(); + if (warehouseId != null) { + data.setId(warehouseId); + ConfigItemChange configItemChange = this.get(warehouseId); + data.setConfigItemChange(configItemChange); + + if (projectId == null) { + projectId = configItemChange.getProjectId(); + } + List<WarehouseCmAudit> CmAuditList = cmAuditService.getList(warehouseId); + data.setCmAuditList(CmAuditList); + List<WarehouseQaAudit> QaAuditList = qaAuditService.getList(warehouseId); + data.setQaAuditList(QaAuditList); + List<WarehouseConfigItem> ConfigItemList = configItemService.getList(warehouseId); + data.setConfigItemList(ConfigItemList); + + } else { + ConfigItemChange configItemChange = new ConfigItemChange(); + data.setConfigItemChange(configItemChange); + List<?> cmList = baseDao.itemList("warehouse_cm_audit"); + List<?> CmAuditList = cmList; + data.setCmAuditList((List<WarehouseCmAudit>) CmAuditList); + List<?> qaList = baseDao.itemList("warehouse_qa_audit"); + List<?> QaAuditList = qaList; + data.setQaAuditList((List<WarehouseQaAudit>) QaAuditList); + List<?> resultList = configItemService.ConfigItemList(projectId); + List<?> ConfigItemList = resultList; + data.setConfigItemList((List<WarehouseConfigItem>) ConfigItemList); + } + + if (projectId != null) { + data.setProjectId(projectId); + data.setProject(projectService.get(projectId)); + } + + return data; + } + +} diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java index 3c06162..3de3851 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java @@ -60,10 +60,10 @@ @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), - @ApiImplicitParam(name = "code", value = "閰嶇疆椤瑰叆搴撶紪鍙�", dataType = Constant.QT.STRING, format = "code^LK"), - @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "code1^EQ"), - @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "software_name^EQ"), - @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "library_type^EQ") }) + @ApiImplicitParam(name = "code", value = "閰嶇疆椤瑰叆搴撶紪鍙�", dataType = Constant.QT.STRING, format = "a.code^LK"), + @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "p.code^EQ"), + @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^EQ"), + @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "a.library_type^EQ") }) public PageResult<ConfigItemWarehouse> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ List<ConfigItemWarehouse> configItemWarehouse=configItemWarehouseService.page(queryFilter); return PageResult.ok(configItemWarehouse); diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java index 61b9549..de1a2e1 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java @@ -103,6 +103,20 @@ for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) { configItem.setWarehouseId(warehouseId); if (configItem.getId() != null) { + if (configItem.getCheckId()!=null){ + String code ="719CTC-09-ST"; + String projectCode = configItemDto.getProject().getCode(); + if (configItem.getItemName().equals("杞欢娴嬭瘯璁″垝")){ + code=code+"P"; + }else if (configItem.getItemName().equals("杞欢娴嬭瘯璇存槑")){ + code=code+"D"; + }else if (configItem.getItemName().equals("杞欢娴嬭瘯璁板綍")){ + code=code+"L"; + }else if (configItem.getItemName().equals("杞欢娴嬭瘯鎶ュ憡")){ + code=code+"R"; + } + configItem.setItemIdentify(code+"-"+projectCode); + } configItemService.update(configItem); } else { configItem.setWarehouseId(warehouseId); diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java index 240c223..33b4cc1 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java @@ -65,9 +65,9 @@ @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), - @ApiImplicitParam(name = "code", value = "鐗╁搧娴佽浆鍗曠紪鍙�", dataType = Constant.QT.STRING, format = "code^LK"), - @ApiImplicitParam(name = "softwareName", value = "鐗╁搧鍚嶇О", dataType = Constant.QT.STRING, format = "software_name^EQ"), - @ApiImplicitParam(name = "softwareIdentity", value = "鐗╁搧缂栧彿", dataType = Constant.QT.STRING, format = "software_identity^EQ") + @ApiImplicitParam(name = "code", value = "鐗╁搧娴佽浆鍗曠紪鍙�", dataType = Constant.QT.STRING, format = "a.code^LK"), + @ApiImplicitParam(name = "softwareName", value = "鐗╁搧鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^EQ"), + @ApiImplicitParam(name = "softwareIdentity", value = "鐗╁搧缂栧彿", dataType = Constant.QT.STRING, format = "p.software_identity^EQ") }) public PageResult<ItemCirculatOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java index f24a2b9..a8e8d9b 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java @@ -27,7 +27,6 @@ @ApiModelProperty(value = "椤圭洰ID") private Long projectId; - @ApiModelProperty(value = "濮旀墭鍗曠紪鍙�") private String code; @@ -121,14 +120,14 @@ @ApiModelProperty(value = "濮旀墭鏂圭瀛楁棩鏈�") @JsonFormat(pattern = "yyyy-MM-dd") - private String entrustSignDate; + private Date entrustSignDate; @ApiModelProperty(value = "鎵挎墭鏂圭瀛�") private String contractSign; @ApiModelProperty(value = "鎵挎墭鏂圭瀛楁棩鏈�") @JsonFormat(pattern = "yyyy-MM-dd") - private String contractSignDate; + private Date contractSignDate; @TableField(exist = false) @ApiModelProperty(value = "濮旀墭鍗曚綅鍚嶇О") diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java index 40fdec2..07d81d7 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java @@ -56,11 +56,13 @@ @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), - @ApiImplicitParam(name = "code", value = "缂栧彿", dataType = Constant.QT.STRING, format = "code^LK"), - @ApiImplicitParam(name = "softwareidentity", value = "椤圭洰鏍囪瘑", dataType = Constant.QT.STRING, format = "softwareIdentity^LK"), - @ApiImplicitParam(name = "softwarename", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "softwareName^LK")}) + @ApiImplicitParam(name = "code", value = "缂栧彿", dataType = Constant.QT.STRING, format = "a.code^LK"), + @ApiImplicitParam(name = "softwareIdentity", value = "椤圭洰鏍囪瘑", dataType = Constant.QT.STRING, format = "p.software_identity^LK"), + @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^LK"), + @ApiImplicitParam(name = "pageCode", value = "閰嶇疆椤规爣璇�", dataType = Constant.QT.STRING, format = "a.page_code^LK")}) public PageResult<TestCheckOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter) { - return PageResult.ok(testCheckOrderService.page(queryFilter)); + List<TestCheckOrder> testCheckOrder =testCheckOrderService.page(queryFilter); + return PageResult.ok(testCheckOrder); } @GetMapping("getDto") diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java index 1a7d671..344a19f 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java @@ -80,7 +80,6 @@ if (projectId == null) { projectId = checkOrder.getProjectId(); } - List<TestCheckOrderList> checkOrderList = checkOrderListService.getList(checkId); data.setCheckOrderList(checkOrderList); diff --git a/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue b/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue new file mode 100644 index 0000000..85e81e2 --- /dev/null +++ b/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue @@ -0,0 +1,507 @@ +<template> + <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit"> + <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" + label-width="120px" class="warehouseFormAuto"> + <div> + <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px"> + <span>{{dataForm.configItemChange.code || '缂栧彿鑷姩鐢熸垚'}}</span> + </el-form-item> + </div> + <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> + <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="warehouseContentWidth"> + <el-form-item class="marginTopAndMarginBottom" label="椤圭洰缂栧彿" style="width: 49%"> + <el-input v-model="dataForm.project.code" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%"> + <el-input v-model="dataForm.project.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + </el-form-item> + <el-form-item label="鐢宠浜�" style="width: 49%"> + <el-input :disabled="stepMarker!=='pzxrk_first'" v-model="dataForm.configItemChange.applicant" + placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input> + </el-form-item> + <el-form-item label="鐢宠鏃ユ湡" style="width: 49%"> + <el-date-picker + :disabled="stepMarker!=='pzxrk_first'" + v-model="dataForm.configItemChange.applyDate" + type="date" + placeholder="璇烽�夋嫨鐢宠鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom2" label="搴撶被鍨�" style="width: 99%"> + <zt-dict v-model="dataForm.configItemChange.libraryType" :radio="true" dict="library_type"></zt-dict> + </el-form-item> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 鍏ュ簱閰嶇疆椤� + </div> + <div class="el-border-left" style="width: calc(100% - 120px)"> + <div class="table-container"> + <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot" + style="width: 99%;margin-left: 5px" border :data="dataForm.configItemList" + stripe> + <el-table-column prop="no" align="center" width="60" label="搴忓彿"> + <template slot-scope="scope"> + <span v-html="indexFormat(scope.$index)"></span> + </template> + </el-table-column> + <el-table-column prop="itemName" width="200" label="閰嶇疆椤瑰悕绉�"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.itemName" placeholder="閰嶇疆椤瑰悕绉�"></el-input> + <span v-else>{{row.itemName}}</span> + </template> + </el-table-column> + <el-table-column prop="itemDentify" align="center" min-width="290" label="閰嶇疆椤规爣璇�"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.itemIdentify" placeholder="閰嶇疆椤规爣璇�"></el-input> + <span v-else>{{row.itemIdentify}}</span> + </template> + </el-table-column> + <el-table-column prop="version" align="center" width="120" label="鐗堟湰"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.version" placeholder="鐗堟湰"></el-input> + <span v-else>{{row.version}}</span> + </template> + </el-table-column> + <el-table-column prop="retrospectVersion" label="涓婃函鐗�" width="120" align="center"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.retrospectVersion" placeholder="涓婃函鐗�"></el-input> + <span v-else>{{row.retrospectVersion}}</span> + </template> + </el-table-column> + <el-table-column prop="secretClass" label="瀵嗙骇" width="100" align="center"> + <template v-slot="{ row }"> + <zt-dict :disabled="!showAddAndEdit" v-model="row.secretClass" placeholder="瀵嗙骇" dict="secret_class" + clearable></zt-dict> + </template> + </el-table-column> + <el-table-column v-if="showColumn" fixed="right" label="绠$悊" width="100" align="center"> + <template v-slot="{ row }"> + <zt-table-button v-if="row.checkId" + @click="openCheckOrderWin(row)">淇敼妫�鏌ュ崟 + </zt-table-button> + <zt-table-button v-else-if="',杞欢娴嬭瘯璁″垝锛岃蒋浠舵祴璇曡鏄庯紝杞欢娴嬭瘯璁板綍锛岃蒋浠舵祴璇曟姤鍛�'.indexOf(row.itemName)>0" + @click="openCheckOrderWin(row)">鏂板妫�鏌ュ崟 + </zt-table-button> + </template> + </el-table-column> + <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="240" align="center"> + <template v-slot="{ row }"> + <!-- <zt-table-button @click="files(row.id)">涓婁紶闄勪欢</zt-table-button>--> + <table-uploader busi-type="config_item_warehouse" model-name="row" :dataForm="row" + v-model="row.files"/> + </template> + </el-table-column> + </el-table> + <div v-if="showAddAndEdit" class="icon-container"> + <el-dropdown @command="handleCommand"> + <span class="el-dropdown-link"> + <i class="el-icon-plus"></i> + </span> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item v-for="item in menuOptions" :key="item.pageCode" :command="item.pageCode"> + {{ item.name }} + </el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <!-- <i class="el-icon-plus"></i>--> + </div> + </div> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 椤圭洰QA瀹℃牳 + </div> + <div class="el-border-left" style="width: calc(100% - 120px)"> + <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border + :data="dataForm.qaAuditList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column> + <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column> + <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center"> + <template slot-scope="scope"> + <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" + dict="tristate2" :radio="true" + clearable></zt-dict> + </template> + </el-table-column> + <el-table-column align="center" width="120" label="涓嶉�傜敤璇存槑"> + <template v-slot="{ row }"> + <el-input v-if="stepMarker=='pzxrk_qash'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input> + <span v-else>{{row.notApplyExplan}}</span> + </template> + </el-table-column> + </el-table> + <div class="el-border-top"> + <el-form-item label="瀹℃牳缁撴灉" style="width: 99%"> + <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="dataForm.configItemChange.qaAuditResults" + dict="is_pass" :radio="true" + clearable></zt-dict> + </el-form-item> + <el-form-item label="瀹℃牳浜猴細" style="width: 48%"> + <span>{{dataForm.configItemChange.qaAuditor}}</span> + </el-form-item> + <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%"> + <span>{{dataForm.configItemChange.qaAuditDate}}</span> + </el-form-item> + </div> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + CM瀹℃牳 + </div> + <div class="el-border-left" style="width: calc(100% - 120px)"> + <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border + :data="dataForm.cmAuditList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column> + <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column> + <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center"> + <template slot-scope="scope"> + <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" + dict="tristate2" :radio="true" + clearable></zt-dict> + </template> + </el-table-column> + <el-table-column prop="notApplyExplan" align="center" width="120" label="涓嶉�傜敤璇存槑"> + <template v-slot="{ row }"> + <el-input v-if="stepMarker=='pzxrk_cmsh'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input> + <span v-else>{{row.notApplyExplan}}</span> + </template> + </el-table-column> + </el-table> + <div class="el-border-top"> + <el-form-item label="瀹℃牳缁撴灉" style="width: 99%"> + <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="dataForm.configItemChange.cmAuditResults" + placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true" + clearable></zt-dict> + </el-form-item> + <el-form-item label="瀹℃牳浜猴細" style="width: 48%"> + <span>{{dataForm.configItemChange.cmAuditor}}</span> + </el-form-item> + <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%"> + <span>{{dataForm.configItemChange.cmAuditDate}}</span> + </el-form-item> + </div> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 鎵瑰噯鎰忚 + </div> + <div style="width: calc(100% - 120px)" class="el-border-left"> + <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%"> + <zt-dict :disabled="stepMarker!=='pzxrk_bmsh'" v-model="dataForm.configItemChange.approvalOpinions" + dict="is_pass" :radio="true" + clearable></zt-dict> + </el-form-item> + <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%"> + <span>{{dataForm.configItemChange.approvalSign}}</span> + </el-form-item> + <el-form-item label="鏃ユ湡锛�" style="width: 20%"> + <span>{{dataForm.configItemChange.approvalDate}}</span> + </el-form-item> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 椤圭洰CM鎿嶄綔 + </div> + <div style="width: calc(100% - 120px)" class="el-border-left"> + <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> + <el-input v-if="stepMarker=='pzxrk_cmcz'" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" + v-model="dataForm.configItemChange.projectCmOperations"></el-input> + <span v-else>{{dataForm.configItemChange.projectCmOperations}}</span> + </el-form-item> + <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%"> + <span>{{dataForm.configItemChange.operator}}</span> + </el-form-item> + <el-form-item label="鏃ユ湡锛�" style="width: 20%"> + <span>{{dataForm.configItemChange.operateDate}}</span> + </el-form-item> + </div> + </div> + <div class="el-flexManageDialog"> + <div class="DFormWidth DAlign DHold"> + 澶囨敞 + </div> + <div style="width: calc(100% - 120px)" class="el-border-left"> + <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> + <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" + v-model="dataForm.configItemChange.remark"></el-input> + </el-form-item> + </div> + </div> + </div> + <add-or-update-check ref="addOrUpdate" @recall="setCheckId"/> + </el-form> + </zt-dialog> +</template> + +<script> + import AddOrUpdateCheck from '../testCheckOrder/TestCheckOrder-AddOrUpdate' + + export default { + data() { + return { + disabled: true, + stepMarker: '', + title: '鏌ョ湅', + showColumn: false, + showAddAndEdit:false, + menuOptions: [ + {pageCode: 'plan', name: '杞欢娴嬭瘯璁″垝',itemIdentify:''}, + {pageCode: 'explain', name: '杞欢娴嬭瘯璇存槑'}, + {pageCode: 'record', name: '杞欢娴嬭瘯璁板綍'}, + {pageCode: 'report', name: '杞欢娴嬭瘯鎶ュ憡'}, + {pageCode: 'other', name: '鍏朵粬'} + ], + pageNameCode: {'杞欢娴嬭瘯璁″垝': 'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'}, + dataForm: { + id: '', + configItemChange: { + id: "", + code: "", + applicant: "", + applyDate: "", + libraryType: "", + qaAuditResults: "", + qaAuditor: "", + qaAuditDate: "", + cmAuditResults: "", + cmAuditor: "", + cmAuditDate: "", + approvalOpinions: "", + approvalSign: "", + approvalDate: "", + projectCmOperations: "", + operator: "", + operateDate: "", + remark: "", + }, + project: { + code: '', + softwareName: '', + }, + cmAuditList: [], + configItemList: [], + qaAuditList: [], + flowInfoDto: {} + } + } + }, + created() { + const roleName = localStorage.getItem('roleName') + if (roleName && roleName.includes('QA')) { + this.showColumn = true; + } + if (roleName && roleName.includes('娴嬭瘯鍛�')) { + this.showAddAndEdit = true; + } + }, + computed: {}, + components: { + AddOrUpdateCheck + }, + methods: { + indexFormat(index) { + return index += 1 + }, + init(id, row) { + console.log(id, row, '鍏ュ簱鍗曠殑') + if (id) { + this.dataForm.id = id + } else { + this.dataForm.id = row.id + } + if (row.projectId) { + this.dataForm.projectId = row.projectId + } + this.getInfo() + if (!this.dataForm.disabled) { + if (!row.stepMarker) { + this.stepMarker = 'pzxrk_first' + this.title = '鍏ュ簱鐢宠' + } else { + this.title = row.stepName + this.stepMarker = row.stepMarker + } + } + console.log(this.dataForm.id, this.dataForm.projectId, 'params params') + }, + // addConfigItemWarehouseRow(){ + // this.dataForm.configItemList.push({}) + // this.$nextTick(()=>{ + // const tableBody=this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') + // tableBody.scrollTop = tableBody.scrollHeight; + // }) + // }, + handleCommand(pageCode) { + const selectedItem = this.menuOptions.find(item => item.pageCode === pageCode); + console.log(selectedItem, "handleCommand(pageCode) selectedItem") + if (selectedItem.pageCode === 'other') { + this.dataForm.configItemList.push({}) + } else if (selectedItem) { + this.dataForm.configItemList.push({itemName: selectedItem.name, pageCode: selectedItem.pageCode}) + } + this.$nextTick(() => { + const tableBody = this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') + tableBody.scrollTop = tableBody.scrollHeight; + }) + }, + openCheckOrderWin(row) { + console.log(row, "openCheckOrderWin(row)") + row.projectId = this.dataForm.projectId + if (!row.pageCode) { + if (!row.checkId) { + row.checkId = -1 + } + row.pageCode = this.pageNameCode[row.itemName] + console.log(row.itemName, row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode") + } + this.$refs.addOrUpdate.$refs.dialog.init(null, row) + + }, + setCheckId(checkId, row) { + console.log(checkId, row, "setCheckId(checkId, row)") + this.$set(row, 'checkId', checkId) + }, + // 鑾峰彇淇℃伅 + async getInfo() { + let params = { + warehouseId: this.dataForm.id, + projectId: this.dataForm.projectId + } + let res = await this.$http.get(`/configItemChange/ConfigItemWarehouse/getDto`, {params: params}) + this.dataForm = { + ...this.dataForm, + ...res.data + } + if (this.dataForm.project === null) { + this.dataForm.project = {} + } + if (this.dataForm.configItemChange === null) { + this.dataForm.circulatOrder = {} + } + if (this.dataForm.flowInfoDto === null) { + this.dataForm.flowInfoDto = {} + } + console.log(this.dataForm, "getInfo this.dataForm") + }, + // 琛ㄥ崟鎻愪氦 + async formSubmit(submitType) { + if (this.showColumn && submitType == 'bl') { + for (let item of this.dataForm.configItemList) { + if (item) { + if (this.pageNameCode[item.itemName] && !item.checkId) { + this.$alert("鏈夋湭鎻愪氦鐨勬鏌ュ崟") + return + } + } + } + } + if (submitType == 'tj' || submitType == 'bl') { + let flowInfo = { + flowCode: 'pzxrk', + stepIdMark: this.stepMarker, + submitType: submitType + } + this.dataForm.flowInfoDto = flowInfo; + } + let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/configItemChange/ConfigItemWarehouse/', this.dataForm) + if (res.success) { + await this.$tip.success() + this.$refs.dialog.close() + this.$emit('refreshDataList') + } + } + } + } +</script> +<style> + .ManageFormAuto { + width: 70%; + margin: 0 auto; + } + + .confirmDAuto { + border: 1px solid; + } + + .el-flexManageDialog { + display: flex; + align-items: center; + } + + .DFormWidth { + width: 120px; + } + + .DAlign { + text-align: center; + } + + .DManageForm { + /*border-left: 1px solid;*/ + width: 100%; + } + + .DManageForm > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); + } + + .el-form-item.el-CMTextarea > .el-form-item__content { + width: 100%; + } + + .el-form .el-form-item.el-wt-form-item-margin { + margin-left: 120px; + } + + .el-form-border { + border-top: 1px solid; + border-bottom: 1px solid; + } + + .el-margin-top-bot { + margin-top: 5px; + margin-bottom: 5px; + } + + .zt .el-table.el-software th { + background: transparent; + } + + .zt .el-table.el-software th > .cell { + font-weight: 500; + } + + .DHold { + font-weight: 600; + } + + .zt .el-table.el-software { + font-size: 14px; + } + + .warehouseContentWidth > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); + } + + .warehouseContentWidth > .el-form-item.lastChild > .el-form-item__content { + width: calc(100% - 142px); + } + + .warehouseFormAuto .marginTopAndMarginBottom { + margin-top: 10px !important; + margin-bottom: 0 !important; + } + + .warehouseFormAuto .marginTopAndMarginBottom2 { + margin-top: -10px !important; + margin-bottom: 0 !important; + } +</style> diff --git a/web/src/views/modules/configItemChange/ConfigItemChange.vue b/web/src/views/modules/configItemChange/ConfigItemChange.vue new file mode 100644 index 0000000..14ad47f --- /dev/null +++ b/web/src/views/modules/configItemChange/ConfigItemChange.vue @@ -0,0 +1,70 @@ +<template> + <div class="fa-card-a"> + <zt-table-wraper query-url="/configItemChange/ConfigItemWarehouse/page" delete-url="/configItemChange/ConfigItemWarehouse/deleteConfigItem" v-slot="{ table }"> + <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> + <el-form-item> + <el-input v-model="dataForm.code" placeholder="璇疯緭鍏ラ厤缃」鍏ュ簱缂栧彿" clearable></el-input> + </el-form-item> + <el-form-item> + <el-input v-model="dataForm.projectCode" placeholder="璇疯緭鍏ラ」鐩紪鍙�" clearable></el-input> + </el-form-item> + <el-form-item> + <el-input v-model="dataForm.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input> + </el-form-item> + <el-form-item> + <zt-dict v-model="dataForm.libraryType" dict="library_type" clearable></zt-dict> + </el-form-item> + <el-form-item> + <zt-button type="query" @click="table.query()"/> + <zt-button type="primary" class="el-icon-edit" perm="configItemChange:add" @click="add()">鏂板</zt-button> + <zt-button type="delete" perm="configItemChange:delete" @click="table.deleteHandle()"/> + </el-form-item> + </el-form> + <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle"> + <el-table-column align="center" type="selection" width="40"/> + <el-table-column prop="code" label="閰嶇疆椤瑰叆搴撶紪鍙�"/> + <el-table-column prop="projectCode" label="椤圭洰缂栧彿"/> + <el-table-column prop="softwareName" label="椤圭洰鍚嶇О"/> + <zt-table-column-dict prop="libraryType" label="搴撶被鍨�" dict="library_type"/> + <zt-table-column-handle :table="table" edit-perm="configItemChange:update" delete-perm="configItemChange::delete"/> + </el-table> + <!-- 寮圭獥, 鏂板 / 淇敼 --> + <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/> + <ProjectSelect ref="projectSelect" + @refreshDataList="table.query" + @setProjectInfo="openAddWin"> + </ProjectSelect> + </zt-table-wraper> + </div> +</template> + +<script> + import AddOrUpdate from './ConfigItemChange-AddOrUpdate' + import ProjectSelect from "../project/Project-select"; + export default { + data() { + return { + dataForm: { + code: '', + projectCode: '', + softwareName: '', + libraryType: '' + } + } + }, + components: { + AddOrUpdate, + ProjectSelect + }, + methods:{ + add() { + this.$refs.projectSelect.$refs.dialog.init("config_item_warehouse") + }, + openAddWin(row) { + console.log(row.id, 'row.id') + // this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id}) + this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id}) + }, + } + } +</script> diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue index 2526e2b..15701d3 100644 --- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue +++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue @@ -250,7 +250,7 @@ disabled: true, stepMarker: '', title: '鏌ョ湅', - showColumn:false, + showColumn: false, showAddAndEdit:false, menuOptions: [ {pageCode: 'plan', name: '杞欢娴嬭瘯璁″垝',itemIdentify:''}, @@ -259,7 +259,7 @@ {pageCode: 'report', name: '杞欢娴嬭瘯鎶ュ憡'}, {pageCode: 'other', name: '鍏朵粬'} ], - pageNameCode: {'杞欢娴嬭瘯璁″垝':'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'}, + pageNameCode: {'杞欢娴嬭瘯璁″垝': 'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'}, dataForm: { id: '', configItemWarehouse: { @@ -302,9 +302,7 @@ this.showAddAndEdit = true; } }, - computed: { - - }, + computed: {}, components: { AddOrUpdateCheck }, @@ -357,9 +355,12 @@ openCheckOrderWin(row) { console.log(row, "openCheckOrderWin(row)") row.projectId = this.dataForm.projectId - if (!row.pageCode){ + if (!row.pageCode) { + if (!row.checkId) { + row.checkId = -1 + } row.pageCode = this.pageNameCode[row.itemName] - console.log(row.itemName,row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode") + console.log(row.itemName, row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode") } this.$refs.addOrUpdate.$refs.dialog.init(null, row) diff --git a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue index ff2903a..964c9db 100644 --- a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue +++ b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue @@ -98,11 +98,11 @@ <div style="width: calc(100% - 120px);"> <div class="el-border-left"> <el-form-item label="鐗╁搧鏄惁闇�瑕佽繑杩�" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0"> - <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemRequire" :radio="true" + <zt-dict :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.itemRequire" :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 :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input> + <el-input :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input> </el-form-item> </div> </div> @@ -129,10 +129,10 @@ </div> <div class="el-border-left " style="width: 35%;height: 80px;"> <el-form-item label="鏄惁瀹屾垚鐥呮瘨鏌ユ潃" label-width="150px" style="padding-left:20px;margin-bottom:0"> - <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict> + <zt-dict :disabled="stepMarker!=='wplz_first'" 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 :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input> + <el-input :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input> </el-form-item> </div> </div> @@ -185,7 +185,7 @@ </div> <div class="el-border-left " style="width: 35%;height: 40px;"> <el-form-item label="鏄惁婊¤冻娴嬭瘯瑕佹眰" label-width="150px" style="padding-left:20px;margin-bottom:0"> - <zt-dict :disabled="stepMarker=='wplz_xzjc'" v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict> + <zt-dict :disabled="stepMarker!=='wplz_xzjc'" v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> </div> </div> @@ -238,7 +238,7 @@ </div> <div class="el-border-left " style="width: 35%;height: 40px;"> <el-form-item label="鏄惁瀹屾垚鏍峰搧鍙戞斁" label-width="150px" style="padding-left:20px;margin-bottom:0"> - <zt-dict :disabled="stepMarker=='wplz_wpff'"v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict> + <zt-dict :disabled="stepMarker!=='wplz_wpff'"v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict> </el-form-item> </div> </div> diff --git a/web/src/views/modules/sys/task/stay-task.vue b/web/src/views/modules/sys/task/stay-task.vue index d4a7626..d20ab58 100644 --- a/web/src/views/modules/sys/task/stay-task.vue +++ b/web/src/views/modules/sys/task/stay-task.vue @@ -219,7 +219,7 @@ if (row.flowCode === 'wplz') { this.$refs.itemCirculatOrder.$refs.dialog.init(row.bizId, row) } else if (row.flowCode === 'pzxrk') { - this.$refs.configItemWarehouse.$refs.dialog.init(row.bizId, row) + this.$refs.configItemChange.$refs.dialog.init(row.bizId, row) }else if (row.flowCode === 'csjcd') { this.$refs.testCheckOrder.$refs.dialog.init(row.bizId, row) } else { diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue index c08ac2d..f5a4aa4 100644 --- a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue @@ -4,7 +4,7 @@ label-width="120px" class="testCheckFormAuto"> <div> <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px"> - <span>{{dataForm.testCheckOrder.code || '缂栧彿鑷姩鐢熸垚'}}</span> + <span>{{dataForm.checkOrder.code || '缂栧彿鑷姩鐢熸垚'}}</span> </el-form-item> </div> <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> @@ -16,12 +16,13 @@ <el-input v-model="dataForm.project.softwareName" placeholder="椤圭洰鍚嶇О"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ヤ汉" style="width: 49%"> - <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.testCheckOrder.examiner" placeholder="妫�鏌ヤ汉"></el-input> + <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.checkOrder.examiner" + placeholder="妫�鏌ヤ汉"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ユ椂闂�" style="width: 49%"> <el-date-picker :disabled="stepMarker!=='csjcd_first'" - v-model="dataForm.testCheckOrder.examDate" + v-model="dataForm.checkOrder.examDate" type="date" placeholder="璇烽�夋嫨妫�鏌ユ椂闂�"> </el-date-picker> @@ -40,9 +41,9 @@ </template> </el-table-column> <el-table-column prop="checkContent" min-width="180" label="涓昏妫�鏌ュ唴瀹�"> -<!-- <template v-slot="{ row }">--> -<!-- <el-input v-model="row.checkContent" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input>--> -<!-- </template>--> + <!-- <template v-slot="{ row }">--> + <!-- <el-input v-model="row.checkContent" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input>--> + <!-- </template>--> </el-table-column> <el-table-column prop="checkResult" align="center" width="180" label="妫�鏌ョ粨鏋�"> <template v-slot="{ row }"> @@ -76,7 +77,7 @@ <div class="el-border-left acceptDate" style="height: 80px;width: 80%;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-input type="textarea" - :rows="3" v-model="dataForm.testCheckOrder.problemDescription" placeholder="闂鎻忚堪..."></el-input> + :rows="3" v-model="dataForm.checkOrder.problemDescription" placeholder="闂鎻忚堪..."></el-input> </el-form-item> </div> </div> @@ -87,7 +88,7 @@ <div class="el-border-left acceptDate" style="height: 80px;width: 80%;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> <el-input type="textarea" - :rows="3" v-model="dataForm.testCheckOrder.problemProcess" placeholder="闂澶勭悊..."></el-input> + :rows="3" v-model="dataForm.checkOrder.problemProcess" placeholder="闂澶勭悊..."></el-input> </el-form-item> </div> </div> @@ -97,7 +98,7 @@ </div> <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;"> <el-form-item style="width: 100%;padding-left:20px;margin:0;"> - <span>{{dataForm.testCheckOrder.processor}}</span> + <span>{{dataForm.checkOrder.processor}}</span> </el-form-item> </div> <div style="width: 84px;text-align: center;font-weight: 600"> @@ -105,7 +106,7 @@ </div> <div class="el-border-left acceptDate1" style="width: 40%;height: 40px;"> <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0"> - <span>{{dataForm.testCheckOrder.verifier}}</span> + <span>{{dataForm.checkOrder.verifier}}</span> </el-form-item> </div> </div> @@ -132,7 +133,7 @@ softwareIdentity: '', softwareName: '', }, - testCheckOrder: { + checkOrder: { code: '', examiner: '', examDate: '', @@ -149,7 +150,9 @@ init(id, row) { this.configDetailRow = row if (row.checkId) { - this.dataForm.id = row.checkId + if (row.checkId != -1) { + this.dataForm.id = row.checkId + } } else if (id) { this.dataForm.id = id } else { @@ -196,8 +199,8 @@ }, // 琛ㄥ崟鎻愪氦 async formSubmit(submitType) { + let isFlow = false if (submitType == 'tj') { - let isFlow = false for (let item of this.dataForm.checkOrderList) { if (!item.checkResult) { this.$alert("鏈夋湭濉啓鐨勬暟鎹�") @@ -210,7 +213,7 @@ submitType == '' } } - if (submitType == 'tj' || submitType == 'bl' && isFlow) { + if (submitType == 'tj' || submitType == 'bl') { let flowInfo = { flowCode: 'csjcd', stepIdMark: this.stepMarker, @@ -218,7 +221,7 @@ } this.dataForm.flowInfoDto = flowInfo; } - + console.log(this.dataForm, "this.dataForm formSubmit(submitType)") let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm) if (res.success) { await this.$tip.success() diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue index ea1a61b..43fd251 100644 --- a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue @@ -1,14 +1,14 @@ <template> <el-card shadow="never" class="aui-card--fill"> <div class="mod-testCheckOrder-testCheckOrder}"> - <zt-table-wraper :query-url="QueryUrl" delete-url="/testCheckOrder/TestCheckOrder/deleteCheckOrder" + <zt-table-wraper query-url="/testCheckOrder/TestCheckOrder/page" delete-url="/testCheckOrder/TestCheckOrder/deleteCheckOrder" v-slot="{ table }"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> <el-form-item> <el-input v-model="dataForm.code" placeholder="璇疯緭鍏ョ紪鍙�" clearable></el-input> </el-form-item> <el-form-item> - <el-input v-model="dataForm.softwarename" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input> + <el-input v-model="dataForm.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input> </el-form-item> <el-form-item> <zt-button type="query" @click="table.query()"/> @@ -55,20 +55,16 @@ QueryUrl:'', dataForm: { code: '', - softwareidentity: '', - softwarename: '', + softwareIdentity: '', + softwareName: '', + pageCode:this.$route.query.pageCode } } }, mounted() { this.pageCode = this.$route.query.pageCode + this.dataForm.pageCode = this.$route.query.pageCode console.log(this.pageCode,'this.pageCode this.pageCode') - }, - watch:{ - pageCode(){ - this.QueryUrl=`/testCheckOrder/TestCheckOrder/page?pageCode=${this.pageCode}` - console.log(this.QueryUrl,'watch pageCode url') - } }, components: { AddOrUpdate, -- Gitblit v1.9.1