modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
New file @@ -0,0 +1,98 @@ package com.zt.life.modules.project.controller; import com.zt.common.annotation.LogOperation; import com.zt.common.constant.Constant; import com.zt.common.annotation.QueryParam; import com.zt.common.db.query.QueryFilter; import com.zt.common.servlet.Result; import com.zt.common.servlet.PageResult; 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.project.model.SoftwareTestOrder; import com.zt.life.modules.project.service.SoftwareTestOrderService; 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 javax.servlet.http.HttpServletResponse; import java.util.List; /** * software_test_order * * @author zt generator * @since 1.0.0 2023-11-08 */ @RestController @RequestMapping("/project/SoftwareTestOrder/") @Api(tags="software_test_order") public class SoftwareTestOrderController { @Autowired private SoftwareTestOrderService softwareTestOrderService; @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 = "testBasis", value = "测试依据", dataType = Constant.QT.STRING, format = "test_basis^EQ"), @ApiImplicitParam(name = "testType", value = "测试类型", dataType = Constant.QT.STRING, format = "test_type^EQ"), @ApiImplicitParam(name = "testStandard", value = "测试标准", dataType = Constant.QT.STRING, format = "test_standard^EQ"), @ApiImplicitParam(name = "articleNature", value = "物品性质", dataType = Constant.QT.STRING, format = "article_nature^EQ")}) public PageResult<SoftwareTestOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ return PageResult.ok(softwareTestOrderService.page(queryFilter)); } @GetMapping("{id}") @ApiOperation("信息") public Result<SoftwareTestOrder> get(@PathVariable("id") Long id){ SoftwareTestOrder data = softwareTestOrderService.get(id); return Result.ok(data); } @PostMapping @ApiOperation("新增") @LogOperation("新增") public Result insert(@RequestBody SoftwareTestOrder softwareTestOrder){ //效验数据 ValidatorUtils.validateEntity(softwareTestOrder, AddGroup.class, DefaultGroup.class); softwareTestOrderService.insert(softwareTestOrder); return Result.ok(); } @PutMapping @ApiOperation("修改") @LogOperation("修改") public Result update(@RequestBody SoftwareTestOrder softwareTestOrder){ //效验数据 ValidatorUtils.validateEntity(softwareTestOrder, UpdateGroup.class, DefaultGroup.class); softwareTestOrderService.update(softwareTestOrder); return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("删除") public Result delete(@RequestBody Long[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); softwareTestOrderService.delete(ids); return Result.ok(); } } modules/mainPart/src/main/java/com/zt/life/modules/project/dao/SoftwareTestOrderDao.java
New file @@ -0,0 +1,23 @@ package com.zt.life.modules.project.dao; import com.zt.common.dao.BaseDao; import com.zt.life.modules.project.model.SoftwareTestOrder; import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; /** * software_test_order * * @author zt generator * @since 1.0.0 2023-11-08 */ @Mapper public interface SoftwareTestOrderDao extends BaseDao<SoftwareTestOrder> { List<SoftwareTestOrder> getList(Map<String, Object> params); } modules/mainPart/src/main/java/com/zt/life/modules/project/dto/ProjectDto.java
New file @@ -0,0 +1,27 @@ package com.zt.life.modules.project.dto; import com.zt.life.modules.project.model.Project; import com.zt.life.modules.project.model.SoftwareTestOrder; import com.zt.life.modules.project.model.SoftwareTestOrderDeliverable; import com.zt.life.modules.project.model.SoftwareTestOrderMeasured; import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo; import com.zt.life.sys.dto.OssDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data public class ProjectDto extends Project { private SoftwareTestOrder softwareTestOrder; private Project project; private TestAgencyInfo TestAgencyInfo; @ApiModelProperty(value = "被测件") private List<SoftwareTestOrderMeasured> childrenTable1 = new ArrayList<>(); @ApiModelProperty(value = "交付件") private List<SoftwareTestOrderDeliverable> childrenTable2 = new ArrayList<>(); } modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
New file @@ -0,0 +1,325 @@ package com.zt.life.modules.project.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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; /** * software_test_order * * @author zt generator * @since 1.0.0 2023-11-08 */ @Data @EqualsAndHashCode(callSuper=false) public class SoftwareTestOrder extends BusiEntity { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "项目ID") private Long projectId; @ApiModelProperty(value = "运行环境") private String optEnviron; @ApiModelProperty(value = "编程语言") private String programLang; @ApiModelProperty(value = "测试依据") private String testBasis; @ApiModelProperty(value = "测试类型") private String testType; @ApiModelProperty(value = "测试标准") private String testStandard; @ApiModelProperty(value = "开始日期") @JsonFormat(pattern = "yyyy-MM-dd") private Date startDate; @ApiModelProperty(value = "结束日期") @JsonFormat(pattern = "yyyy-MM-dd") private Date endDate; @ApiModelProperty(value = "测试场地") private String testVenue; @ApiModelProperty(value = "其他要求") private String otherRequire; @ApiModelProperty(value = "测试日期") @JsonFormat(pattern = "yyyy-MM-dd") private Date testDate; @ApiModelProperty(value = "交付日期") @JsonFormat(pattern = "yyyy-MM-dd") private Date deliveryDate; @ApiModelProperty(value = "检测费用") private Integer testCost; @ApiModelProperty(value = "物品性质") private String articleNature; @ApiModelProperty(value = "样品状态") private String sampleStatus; @ApiModelProperty(value = "测评机构名称") private String agencyName; @ApiModelProperty(value = "地址") private String site; @ApiModelProperty(value = "业务联系") private String businContact; @ApiModelProperty(value = "业务投诉") private String businComplaint; @ApiModelProperty(value = "实验室联系人") private String laborContact; @ApiModelProperty(value = "实验室联系电话") private String labContactNum; @ApiModelProperty(value = "邮政编码") private String postalCode; @ApiModelProperty(value = "传真") private String fax; @TableField(exist = false) @ApiModelProperty(value = "委托单位名称") private String entrustUnitName; @TableField(exist = false) @ApiModelProperty(value = "委托单位地址") private String entrustUnitAddress; @TableField(exist = false) @ApiModelProperty(value = "委托单位联系人") private String entrustUnitContact; @TableField(exist = false) @ApiModelProperty(value = "委托单位联系方式") private String entrustUnitContWay; @TableField(exist = false) @ApiModelProperty(value = "开发单位名称") private String developUnitName; @TableField(exist = false) @ApiModelProperty(value = "开发单位地址") private String developUnitAddress; @TableField(exist = false) @ApiModelProperty(value = "开发单位联系人") private String developUnitContact; @TableField(exist = false) @ApiModelProperty(value = "开发单位联系方式") private String developUnitContWay; @TableField(exist = false) @ApiModelProperty(value = "软件名称") private String softwareName; @TableField(exist = false) @ApiModelProperty(value = "项目编号") private String code; @TableField(exist = false) @ApiModelProperty(value = "项目标识") private String identity; @TableField(exist = false) @ApiModelProperty(value = "密级") private Integer secretClass; @TableField(exist = false) @ApiModelProperty(value = "关键等级") private Integer criticalLevel; @TableField(exist = false) @ApiModelProperty(value = "测试级别") private Integer testLevel; @TableField(exist = false) @ApiModelProperty(value = "软件类型") private String softwareType; @TableField(exist = false) @ApiModelProperty(value = "项目负责人") private String projectLeader; @TableField(exist = false) @ApiModelProperty(value = "项目测试人员") private String projectTesters; @TableField(exist = false) @ApiModelProperty(value = "项目审核人员") private String projectReviewer; @TableField(exist = false) @ApiModelProperty(value = "是否签署合同") private Integer isContract; public String getEntrustUnitName() { return entrustUnitName; } public void setEntrustUnitName(String entrustUnitName) { this.entrustUnitName = entrustUnitName; } public String getEntrustUnitAddress() { return entrustUnitAddress; } public void setEntrustUnitAddress(String entrustUnitAddress) { this.entrustUnitAddress = entrustUnitAddress; } public String getEntrustUnitContact() { return entrustUnitContact; } public void setEntrustUnitContact(String entrustUnitContact) { this.entrustUnitContact = entrustUnitContact; } public String getEntrustUnitContWay() { return entrustUnitContWay; } public void setEntrustUnitContWay(String entrustUnitContWay) { this.entrustUnitContWay = entrustUnitContWay; } public String getDevelopUnitName() { return developUnitName; } public void setDevelopUnitName(String developUnitName) { this.developUnitName = developUnitName; } public String getDevelopUnitAddress() { return developUnitAddress; } public void setDevelopUnitAddress(String developUnitAddress) { this.developUnitAddress = developUnitAddress; } public String getDevelopUnitContact() { return developUnitContact; } public void setDevelopUnitContact(String developUnitContact) { this.developUnitContact = developUnitContact; } public String getDevelopUnitContWay() { return developUnitContWay; } public void setDevelopUnitContWay(String developUnitContWay) { this.developUnitContWay = developUnitContWay; } public String getSoftwareName() { return softwareName; } public void setSoftwareName(String softwareName) { this.softwareName = softwareName; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getIdentity() { return identity; } public void setIdentity(String identity) { this.identity = identity; } public Integer getSecretClass() { return secretClass; } public void setSecretClass(Integer secretClass) { this.secretClass = secretClass; } public Integer getCriticalLevel() { return criticalLevel; } public void setCriticalLevel(Integer criticalLevel) { this.criticalLevel = criticalLevel; } public Integer getTestLevel() { return testLevel; } public void setTestLevel(Integer testLevel) { this.testLevel = testLevel; } public String getSoftwareType() { return softwareType; } public void setSoftwareType(String softwareType) { this.softwareType = softwareType; } public String getProjectLeader() { return projectLeader; } public void setProjectLeader(String projectLeader) { this.projectLeader = projectLeader; } public String getProjectTesters() { return projectTesters; } public void setProjectTesters(String projectTesters) { this.projectTesters = projectTesters; } public String getProjectReviewer() { return projectReviewer; } public void setProjectReviewer(String projectReviewer) { this.projectReviewer = projectReviewer; } public Integer getIsContract() { return isContract; } public void setIsContract(Integer isContract) { this.isContract = isContract; } } modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
New file @@ -0,0 +1,40 @@ package com.zt.life.modules.project.service; import com.zt.common.service.BaseService; import com.zt.life.modules.project.dao.SoftwareTestOrderDao; import com.zt.life.modules.project.model.SoftwareTestOrder; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import javax.annotation.Resource; import java.util.List; /** * software_test_order * * @author zt generator * @since 1.0.0 2023-11-08 */ @Service public class SoftwareTestOrderService extends BaseService<SoftwareTestOrderDao, SoftwareTestOrder> { /** * 分页查询 * * @param queryFilter * @return */ public List<SoftwareTestOrder> page(QueryFilter queryFilter) { return baseDao.getList(queryFilter.getQueryParams()); } /** * 删除 * * @param ids */ public void delete(Long[] ids) { super.deleteLogic(ids); } } modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/controller/TestAgencyInfoController.java
New file @@ -0,0 +1,96 @@ package com.zt.life.modules.sysBaseInfo.controller; import com.zt.common.annotation.LogOperation; import com.zt.common.constant.Constant; import com.zt.common.annotation.QueryParam; import com.zt.common.db.query.QueryFilter; import com.zt.common.servlet.Result; import com.zt.common.servlet.PageResult; 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.sysBaseInfo.model.TestAgencyInfo; import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService; 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 javax.servlet.http.HttpServletResponse; import java.util.List; /** * test_agency_info * * @author zt generator * @since 1.0.0 2023-11-08 */ @RestController @RequestMapping("/sysBaseInfo/TestAgencyInfo/") @Api(tags="test_agency_info") public class TestAgencyInfoController { @Autowired private TestAgencyInfoService testAgencyInfoService; @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 = "agencyName", value = "测评机构名称", dataType = Constant.QT.STRING, format = "agency_name^LK") }) public PageResult<TestAgencyInfo> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ return PageResult.ok(testAgencyInfoService.page(queryFilter)); } @GetMapping("{id}") @ApiOperation("信息") public Result<TestAgencyInfo> get(@PathVariable("id") Long id){ TestAgencyInfo data = testAgencyInfoService.get(id); return Result.ok(data); } @PostMapping @ApiOperation("新增") @LogOperation("新增") public Result insert(@RequestBody TestAgencyInfo testAgencyInfo){ //效验数据 ValidatorUtils.validateEntity(testAgencyInfo, AddGroup.class, DefaultGroup.class); testAgencyInfoService.insert(testAgencyInfo); return Result.ok(); } @PutMapping @ApiOperation("修改") @LogOperation("修改") public Result update(@RequestBody TestAgencyInfo testAgencyInfo){ //效验数据 ValidatorUtils.validateEntity(testAgencyInfo, UpdateGroup.class, DefaultGroup.class); testAgencyInfoService.update(testAgencyInfo); return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("删除") public Result delete(@RequestBody Long[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); testAgencyInfoService.delete(ids); return Result.ok(); } } modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/dao/TestAgencyInfoDao.java
New file @@ -0,0 +1,23 @@ package com.zt.life.modules.sysBaseInfo.dao; import com.zt.common.dao.BaseDao; import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo; import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; /** * test_agency_info * * @author zt generator * @since 1.0.0 2023-11-08 */ @Mapper public interface TestAgencyInfoDao extends BaseDao<TestAgencyInfo> { List<TestAgencyInfo> getList(Map<String, Object> params); } modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/model/TestAgencyInfo.java
New file @@ -0,0 +1,48 @@ package com.zt.life.modules.sysBaseInfo.model; import com.baomidou.mybatisplus.annotation.TableName; import com.zt.common.entity.BusiEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; /** * test_agency_info * * @author zt generator * @since 1.0.0 2023-11-08 */ @Data @EqualsAndHashCode(callSuper=false) @TableName("test_agency_info") public class TestAgencyInfo extends BusiEntity { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "测评机构名称") private String agencyName; @ApiModelProperty(value = "地址") private String site; @ApiModelProperty(value = "业务联系") private String businContact; @ApiModelProperty(value = "业务投诉") private String businComplaint; @ApiModelProperty(value = "实验室联系人") private String laborContact; @ApiModelProperty(value = "实验室联系电话") private String labContactNum; @ApiModelProperty(value = "邮政编码") private String postalCode; @ApiModelProperty(value = "传真") private String fax; } modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/service/TestAgencyInfoService.java
New file @@ -0,0 +1,40 @@ package com.zt.life.modules.sysBaseInfo.service; import com.zt.common.service.BaseService; import com.zt.life.modules.sysBaseInfo.dao.TestAgencyInfoDao; import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import javax.annotation.Resource; import java.util.List; /** * test_agency_info * * @author zt generator * @since 1.0.0 2023-11-08 */ @Service public class TestAgencyInfoService extends BaseService<TestAgencyInfoDao, TestAgencyInfo> { /** * 分页查询 * * @param queryFilter * @return */ public List<TestAgencyInfo> page(QueryFilter queryFilter) { return baseDao.getList(queryFilter.getQueryParams()); } /** * 删除 * * @param ids */ public void delete(Long[] ids) { super.deleteLogic(ids); } } modules/mainPart/src/main/resources/mapper/newplan/TaskCenterDao.xml
@@ -65,15 +65,15 @@ a.title as summary, b.STEP_ROUTER, b.STEP_ROUTER_ID FROM DJ_WF_RUN_TASK a left join DJ_WF_DEF_STEP b on a.step_id = b.id FROM WF_RUN_TASK a left join WF_DEF_STEP b on a.step_id = b.id WHERE a.is_delete =0 and a.status in (0,1) AND a.RECEIVE_ID = #{userId} <if test="projectId != null and projectId != ''"> and a.biz_group_id = #{projectId} </if> <if test="djxlSystem != null and djxlSystem != ''"> and a.FLOW_ID in (select id from dj_wf_def where system_type = #{djxlSystem}) and a.FLOW_ID in (select id from wf_def where system_type = #{djxlSystem}) </if> ORDER BY a.receive_time DESC </select> @@ -97,13 +97,13 @@ a1.receive_time, a1.finish_time as finish_time, a1.status FROM DJ_WF_RUN_TASK a1 FROM WF_RUN_TASK a1 WHERE a1.is_delete = 0 and (a1.receive_id=#{userId} or EXISTS(SELECT 1 FROM dj_sys_role s1,dj_sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND or EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND s2.is_delete=0 and s1.CODE in ('all','xtglybm'))) <if test="djxlSystem != null and djxlSystem != ''"> and a1.FLOW_ID in (select id from dj_wf_def where system_type = #{djxlSystem}) and a1.FLOW_ID in (select id from wf_def where system_type = #{djxlSystem}) </if> ) a2 @@ -125,7 +125,7 @@ b1.receive_time, b1.status from ${pageDone_temp1} a1, DJ_WF_RUN_TASK b1 WF_RUN_TASK b1 WHERE b1.is_delete = 0 and b1.status in(0,1,100) @@ -161,8 +161,8 @@ a.sender_name as finishUserName FROM ${pageDone_temp1} a join ${pageDone_temp2} b on a.biz_id = b.biz_id and a.flow_code = b.flow_code left join DJ_WF_DEF_STEP c on a.step_id = c.id left join DJ_WF_DEF_STEP d on b.step_id = d.id left join WF_DEF_STEP c on a.step_id = c.id left join WF_DEF_STEP d on b.step_id = d.id group by a.biz_id,a.flow_code,a.step_id ORDER BY a.receive_time DESC </select> @@ -184,20 +184,20 @@ a.create_date AS RECEIVE_TIME, DateDiff(CURRENT_DATE,a.create_date) as idleDays FROM DJ_ZHGL_ANNUAL_PLAN a ZHGL_ANNUAL_PLAN a LEFT JOIN view_zt_boat_tree p on concat(a.product_id) = p.product_id LEFT JOIN DJ_SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value AND dict_type_id IN(SELECT id FROM DJ_SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type') LEFT JOIN SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value AND dict_type_id IN(SELECT id FROM SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type') LEFT JOIN SYS_USER u ON u.user_id = a.CREATOR WHERE a.is_delete = 0 and ( (CURRENT_STATE = 1 and EXISTS(SELECT 1 FROM dj_sys_role s1,dj_sys_role_user s2 and EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND s2.is_delete=0 and s1.CODE = 'zlbm') ) or ( CURRENT_STATE = '5' and EXISTS(SELECT 1 FROM dj_sys_role s1,dj_sys_role_user s2 and EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND s2.is_delete=0 and s1.CODE = 'czbm') ) @@ -241,17 +241,17 @@ when a.CURRENT_STATE = 5 then '处长' else '' end AS receiveName, DateDiff(CURRENT_DATE, a.create_date) as idleDays FROM DJ_ZHGL_ANNUAL_PLAN a FROM ZHGL_ANNUAL_PLAN a LEFT JOIN view_zt_boat_tree p on concat(a.product_id) = p.product_id LEFT JOIN DJ_SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value AND dict_type_id IN (SELECT id FROM DJ_SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type') LEFT JOIN SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value AND dict_type_id IN (SELECT id FROM SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type') LEFT JOIN SYS_USER u ON u.user_id = a.UPDATER WHERE a.is_delete = 0 and ( (CURRENT_STATE in (1, 10) and EXISTS(SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 FROM sys_role s1, sys_role_user s2 WHERE s2.IS_DELETE = 0 and s1.ID = s2.role_id AND s2.USER_id = #{userId} @@ -260,8 +260,8 @@ or ( CURRENT_STATE in (5, 10) and EXISTS(SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 FROM sys_role s1, sys_role_user s2 WHERE s2.IS_DELETE = 0 and s1.ID = s2.role_id AND s2.USER_id = #{userId} @@ -269,8 +269,8 @@ ) or ( CURRENT_STATE in (1, 5, 10) and EXISTS(SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 FROM sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND s2.is_delete = 0 @@ -303,7 +303,7 @@ SELECT *,'rjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1648318473140449281' as stepRouterId FROM dj_wx_daily_plan wx_daily_plan WHERE IS_DELETE =0 and FLOW_Status = 'rjh_hz' @@ -311,8 +311,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} @@ -322,7 +322,7 @@ SELECT *,'rjh_sh' as STEP_MARKER,'部门长审核' as STEP_Name,'1648318806923161601' as stepRouterId FROM dj_wx_daily_plan wx_daily_plan WHERE IS_DELETE =0 and FLOW_Status = 'rjh_sh' @@ -330,8 +330,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} @@ -341,7 +341,7 @@ SELECT *,'rjh_cjfk' as STEP_MARKER,'厂家反馈情况' as STEP_MARKER,'1648319132719919106' as stepRouterId FROM dj_wx_daily_plan wx_daily_plan WHERE IS_DELETE =0 and FLOW_Status = 'rjh_fk' @@ -351,8 +351,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} @@ -362,7 +362,7 @@ SELECT *,'rjh_tyfk' as STEP_MARKER,'艇员反馈助修情况' as STEP_Name,'1648318988234534914' as stepRouterId FROM dj_wx_daily_plan wx_daily_plan WHERE IS_DELETE =0 and FLOW_Status = 'rjh_fk' @@ -372,8 +372,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} @@ -383,7 +383,7 @@ project_id, plan_date ) a left join dj_wx_project b on a.project_id = b.id left join wx_project b on a.project_id = b.id left join sys_user c on a.SUBMIT_PERSONNEL = c.user_id </select> --> @@ -413,7 +413,7 @@ 'monthPlanFlow' as FLOW_CODE, 'yjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1660911405324423170' as stepRouterId FROM dj_wx_weekly_month_plan wx_weekly_month_plan WHERE IS_DELETE = 0 and PLAN_TYPE = 1 @@ -422,8 +422,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s1.IS_DELETE=0 @@ -441,7 +441,7 @@ 'weekPlanFlow' as FLOW_CODE, 'zjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1660904721482895361' as stepRouterId FROM dj_wx_weekly_month_plan wx_weekly_month_plan WHERE IS_DELETE = 0 and PLAN_TYPE = 0 @@ -450,8 +450,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s1.IS_DELETE=0 @@ -469,7 +469,7 @@ 'rjhFlow' as FLOW_CODE, 'rjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1648318473140449281' as stepRouterId FROM dj_wx_daily_plan wx_daily_plan WHERE IS_DELETE = 0 and FLOW_Status = 'rjh_hz' @@ -477,8 +477,8 @@ SELECT 1 FROM dj_sys_role s1, dj_sys_role_user s2 sys_role s1, sys_role_user s2 WHERE s1.ID = s2.role_id AND s1.IS_DELETE=0 @@ -489,7 +489,7 @@ GROUP BY project_id, plan_date ) a left join dj_wx_project b on a.project_id = b.id left join wx_project b on a.project_id = b.id left join sys_user c on a.SUBMIT_PERSONNEL = c.user_id </select> @@ -551,16 +551,16 @@ a.title as summary, b.STEP_ROUTER, b.STEP_ROUTER_ID FROM DJ_WF_RUN_TASK a left join DJ_WF_DEF_STEP b on a.step_id = b.id FROM WF_RUN_TASK a left join WF_DEF_STEP b on a.step_id = b.id WHERE a.is_delete =0 and a.status in (0,1) and a.topic=(select model_name from dj_wx_project where id=#{projectId}) and a.topic=(select model_name from wx_project where id=#{projectId}) and a.step_marker='jsfa_sc' ORDER BY a.receive_time DESC limit 1 </select> <update id="oneKeyDoneCy"> update dj_wf_run_task update wf_run_task set status=20, UPDATER=#{userId}, UPDATE_DATE=CURRENT_TIMESTAMP where STEP_MARKER in('rjh_cy','zjh_cy','yjh_cy') and status=0 and RECEIVE_ID=#{userId} </update> modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
New file @@ -0,0 +1,21 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zt.life.modules.project.dao.SoftwareTestOrderDao"> <select id="getList" resultType="com.zt.life.modules.project.model.SoftwareTestOrder"> SELECT a.*, p.* FROM project p INNER JOIN software_test_order a ON p.id = a.project_id <where> a.is_delete = 0 <if test="whereSql!=null"> and ${whereSql} </if> </where> <if test="orderBySql!=null"> ORDER BY ${orderBySql} </if> </select> </mapper> modules/mainPart/src/main/resources/mapper/sysBaseInfo/TestAgencyInfoDao.xml
New file @@ -0,0 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zt.life.modules.sysBaseInfo.dao.TestAgencyInfoDao"> <select id="getList" resultType="com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo"> select a.* from test_agency_info a <where> a.is_delete = 0 <if test="whereSql!=null"> and ${whereSql} </if> </where> <if test="orderBySql!=null"> ORDER BY ${orderBySql} </if> </select> </mapper> web/src/views/modules/project/Project.vue
@@ -4,28 +4,22 @@ <zt-table-wraper query-url="/project/Project/page" delete-url="/project/Project" v-slot="{ table }"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> <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-dict v-model="dataForm.secretClass" dict="secret_class" clearable></zt-dict> <zt-dict v-model="dataForm.secretClass" dict="secret_class" placeholder="请选择密级" clearable></zt-dict> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.criticalLevel" dict="critical_level" clearable></zt-dict> <zt-dict v-model="dataForm.criticalLevel" dict="critical_level" placeholder="请选择关键等级" clearable></zt-dict> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.testLevel" dict="test_level" clearable></zt-dict> <zt-dict v-model="dataForm.testLevel" dict="test_level" placeholder="请选择测试级别" clearable></zt-dict> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.softwareType" dict="software_type" clearable></zt-dict> <zt-dict v-model="dataForm.softwareType" dict="software_type" placeholder="请选择软件类型" clearable></zt-dict> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.isContract" dict="is_or_not" clearable></zt-dict> <zt-dict v-model="dataForm.isContract" dict="is_or_not" placeholder="请选择是否签署合同" clearable></zt-dict> </el-form-item> <el-form-item> <zt-button type="query" @click="table.query()"/> web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
New file @@ -0,0 +1,127 @@ <template> <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> <zt-form-item label="运行环境" prop="optEnviron" rules="required"> <el-input v-model="dataForm.optEnviron"></el-input> </zt-form-item> <zt-form-item label="编程语言" prop="programLang" rules="required"> <el-input v-model="dataForm.programLang"></el-input> </zt-form-item> <zt-form-item label="测试依据" prop="testBasis" rules="required"> <zt-dict v-model="dataForm.testBasis" dict="test_basis"></zt-dict> </zt-form-item> <zt-form-item label="测试类型" prop="testType" rules="required"> <zt-dict v-model="dataForm.testType" dict="test_type1"></zt-dict> </zt-form-item> <zt-form-item label="测试标准" prop="testStandard" rules="required"> <zt-dict v-model="dataForm.testStandard" dict="test_standard"></zt-dict> </zt-form-item> <zt-form-item label="开始日期" prop="startDate" rules="required"> <el-input v-model="dataForm.startDate"></el-input> </zt-form-item> <zt-form-item label="结束日期" prop="endDate" rules="required"> <el-input v-model="dataForm.endDate"></el-input> </zt-form-item> <zt-form-item label="测试场地" prop="testVenue" rules="required"> <el-input v-model="dataForm.testVenue"></el-input> </zt-form-item> <zt-form-item label="其他要求" prop="otherRequire" rules="required"> <el-input v-model="dataForm.otherRequire"></el-input> </zt-form-item> <zt-form-item label="测试日期" prop="testDate" rules="required"> <el-input v-model="dataForm.testDate"></el-input> </zt-form-item> <zt-form-item label="交付日期" prop="deliveryDate" rules="required"> <el-input v-model="dataForm.deliveryDate"></el-input> </zt-form-item> <zt-form-item label="检测费用" prop="testCost" rules="required"> <el-input v-model="dataForm.testCost"></el-input> </zt-form-item> <zt-form-item label="物品性质" prop="articleNature" rules="required"> <zt-dict v-model="dataForm.articleNature" dict="article_nature"></zt-dict> </zt-form-item> <zt-form-item label="样品状态" prop="sampleStatus" rules="required"> <el-input v-model="dataForm.sampleStatus"></el-input> </zt-form-item> <zt-form-item label="测评机构名称" prop="agencyName" rules="required"> <el-input v-model="dataForm.agencyName"></el-input> </zt-form-item> <zt-form-item label="地址" prop="site" rules="required"> <el-input v-model="dataForm.site"></el-input> </zt-form-item> <zt-form-item label="业务联系" prop="businContact" rules="required"> <el-input v-model="dataForm.businContact"></el-input> </zt-form-item> <zt-form-item label="业务投诉" prop="businComplaint" rules="required"> <el-input v-model="dataForm.businComplaint"></el-input> </zt-form-item> <zt-form-item label="实验室联系人" prop="laborContact" rules="required"> <el-input v-model="dataForm.laborContact"></el-input> </zt-form-item> <zt-form-item label="实验室联系电话" prop="labContactNum" rules="required"> <el-input v-model="dataForm.labContactNum"></el-input> </zt-form-item> <zt-form-item label="邮政编码" prop="postalCode" rules="required"> <el-input v-model="dataForm.postalCode"></el-input> </zt-form-item> <zt-form-item label="传真" prop="fax" rules="required"> <el-input v-model="dataForm.fax"></el-input> </zt-form-item> </el-form> </zt-dialog> </template> <script> export default { data() { return { dataForm: { id: '', projectId: '', optEnviron: '', programLang: '', testBasis: '', testType: '', testStandard: '', startDate: '', endDate: '', testVenue: '', otherRequire: '', testDate: '', deliveryDate: '', testCost: '', articleNature: '', sampleStatus: '', agencyName: '', site: '', businContact: '', businComplaint: '', laborContact: '', labContactNum: '', postalCode: '', fax: '' } } }, methods: { // 获取信息 async getInfo() { let res = await this.$http.get(`/project/SoftwareTestOrder/${this.dataForm.id}`) this.dataForm = { ...this.dataForm, ...res.data } console.log(this.dataForm,"this.dataForm") }, // 表单提交 async formSubmit() { let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/SoftwareTestOrder/', this.dataForm) if (res.success) { await this.$tip.success() this.$refs.dialog.close() this.$emit('refreshDataList') } } } } </script> web/src/views/modules/project/SoftwareTestOrder.vue
New file @@ -0,0 +1,58 @@ <template> <el-card shadow="never" class="aui-card--fill"> <div class="mod-project-softwareTestOrder}"> <zt-table-wraper query-url="/project/SoftwareTestOrder/page" delete-url="/project/SoftwareTestOrder" v-slot="{ table }"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> <el-form-item> <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称" clearable></el-input> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.testBasis" dict="test_basis" placeholder="请选择测试依据" clearable></zt-dict> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.testStandard" dict="test_standard" placeholder="请选择测试标准" clearable></zt-dict> </el-form-item> <el-form-item> <zt-dict v-model="dataForm.articleNature" dict="article_nature" placeholder="请选择物品性质" clearable></zt-dict> </el-form-item> <el-form-item> <zt-button type="query" @click="table.query()"/> <zt-button type="add" perm="project:add" @click="table.editHandle()"/> <zt-button type="delete" perm="project: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 type="selection" width="40"/> <el-table-column prop="softwareName" label="软件名称"/> <el-table-column prop="code" label="项目编号"/> <el-table-column prop="identity" label="项目标识"/> <zt-table-column-dict prop="testBasis" label="测试依据" dict="test_basis"/> <zt-table-column-dict prop="testStandard" label="测试标准" dict="test_standard"/> <zt-table-column-dict prop="articleNature" label="物品性质" dict="article_nature"/> <zt-table-column-handle :table="table" edit-perm="project:update" delete-perm="project::delete"/> </el-table> <!-- 弹窗, 新增 / 修改 --> <add-or-update @refreshDataList="table.query"/> </zt-table-wraper> </div> </el-card> </template> <script> import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate' export default { data() { return { dataForm: { testBasis: '', testType: '', testStandard: '', articleNature: '', } } }, components: { AddOrUpdate } } </script> web/src/views/modules/sysBaseInfo/TestAgencyInfo-AddOrUpdate.vue
New file @@ -0,0 +1,69 @@ <template> <zt-dialog ref="dialog" @confirm="formSubmit"> <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> <zt-form-item label="测评机构名称" prop="agencyName" rules="required"> <el-input v-model="dataForm.agencyName"></el-input> </zt-form-item> <zt-form-item label="地址" prop="site" rules="required"> <el-input v-model="dataForm.site"></el-input> </zt-form-item> <zt-form-item label="业务联系" prop="businContact" rules="required"> <el-input v-model="dataForm.businContact"></el-input> </zt-form-item> <zt-form-item label="业务投诉" prop="businComplaint" rules="required"> <el-input v-model="dataForm.businComplaint"></el-input> </zt-form-item> <zt-form-item label="实验室联系人" prop="laborContact" rules="required"> <el-input v-model="dataForm.laborContact"></el-input> </zt-form-item> <zt-form-item label="实验室联系电话" prop="labContactNum" rules="required"> <el-input v-model="dataForm.labContactNum"></el-input> </zt-form-item> <zt-form-item label="邮政编码" prop="postalCode" rules="required"> <el-input v-model="dataForm.postalCode"></el-input> </zt-form-item> <zt-form-item label="传真" prop="fax" rules="required"> <el-input v-model="dataForm.fax"></el-input> </zt-form-item> </el-form> </zt-dialog> </template> <script> export default { data() { return { dataForm: { id: '', agencyName: '', site: '', businContact: '', businComplaint: '', laborContact: '', labContactNum: '', postalCode: '', fax: '' } } }, methods: { // 获取信息 async getInfo() { let res = await this.$http.get(`/sysBaseInfo/TestAgencyInfo/${this.dataForm.id}`) this.dataForm = { ...this.dataForm, ...res.data } }, // 表单提交 async formSubmit() { let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/sysBaseInfo/TestAgencyInfo/', this.dataForm) if (res.success) { await this.$tip.success() this.$refs.dialog.close() this.$emit('refreshDataList') } } } } </script> web/src/views/modules/sysBaseInfo/TestAgencyInfo.vue
New file @@ -0,0 +1,44 @@ <template> <el-card shadow="never" class="aui-card--fill"> <div class="mod-sysBaseInfo-testAgencyInfo}"> <zt-table-wraper query-url="/sysBaseInfo/TestAgencyInfo/page" delete-url="/sysBaseInfo/TestAgencyInfo" v-slot="{ table }"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> <el-form-item> <el-input v-model="dataForm.agencyName" placeholder="请输入测评机构名称" clearable></el-input> </el-form-item> <el-form-item> <zt-button type="query" @click="table.query()"/> <zt-button type="add" perm="sysBaseInfo:add" @click="table.editHandle()"/> <zt-button type="delete" perm="sysBaseInfo: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 type="selection" width="40"/> <el-table-column prop="agencyName" label="测评机构名称"/> <el-table-column prop="businContact" label="业务联系"/> <el-table-column prop="laborContact" label="实验室联系人"/> <zt-table-column-handle :table="table" edit-perm="sysBaseInfo:update" delete-perm="sysBaseInfo::delete"/> </el-table> <!-- 弹窗, 新增 / 修改 --> <add-or-update @refreshDataList="table.query"/> </zt-table-wraper> </div> </el-card> </template> <script> import AddOrUpdate from './TestAgencyInfo-AddOrUpdate' export default { data() { return { dataForm: { agencyName: '', } } }, components: { AddOrUpdate } } </script>