diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/controller/PriceController.java b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/controller/PriceController.java
index 1d65153..db75e4f 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/controller/PriceController.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/controller/PriceController.java
@@ -115,4 +115,11 @@ public class PriceController extends BaseController
         return toAjax(priceService.disable(priceId));
     }
 
+    @PreAuthorize("@ss.hasPermi('yh:price:enable')")
+    @Log(title = "单价启用", businessType = BusinessType.OTHER)
+    @PutMapping("/{priceId}/enable")
+    public AjaxResult enable(@PathVariable Long priceId) {
+        return toAjax(priceService.enable(priceId));
+    }
+
 }
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/Price.java b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/Price.java
index 4ce578a..eb44287 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/Price.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/Price.java
@@ -50,6 +50,7 @@ public class Price extends BaseEntity
 
     @Excel(name = "工序名称")
     @ApiModelProperty("工序名称")
+    @NotNull(message = "工序名称不允许为空", groups = ValidGroup.Create.class)
     @Size(max = 200, message = "工序名称不允许超过200个字符")
     private String name;
 
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/enums/PriceStatus.java b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/enums/PriceStatus.java
index c54a957..5e425ce 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/enums/PriceStatus.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/domain/enums/PriceStatus.java
@@ -32,7 +32,7 @@ public enum PriceStatus {
      * 允许修改的状态
      */
     public static List<String> canEdit() {
-        return asList(WAIT_SUBMIT);
+        return asList(WAIT_SUBMIT, REJECT);
     }
 
     /**
@@ -62,4 +62,11 @@ public enum PriceStatus {
     public static List<String> canDisable() {
         return asList(PASS);
     }
+
+    /**
+     * 允许启用的状态
+     */
+    public static List<String> canEnable() {
+        return asList(PASS);
+    }
 }
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/PriceService.java b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/PriceService.java
index ad38f70..cb30b33 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/PriceService.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/PriceService.java
@@ -92,4 +92,10 @@ public interface PriceService
      * @param priceId 单价ID
      */
     int disable(Long priceId);
+
+    /**
+     * 启用操作
+     * @param priceId 单价ID
+     */
+    int enable(Long priceId);
 }
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceConverterImpl.java b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceConverterImpl.java
index e001003..5cab8a8 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceConverterImpl.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceConverterImpl.java
@@ -53,6 +53,7 @@ public class PriceConverterImpl implements PriceConverter {
         LoginUser loginUser = SecurityUtils.getLoginUser();
 
         Price po = new Price();
+        po.setStatus(PriceStatus.WAIT_SUBMIT.getStatus());
         po.setPriceId(data.getPriceId());
         po.setDeptId(data.getDeptId());
         po.setCategory(data.getCategory());
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceServiceImpl.java b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceServiceImpl.java
index a6c0868..11799b7 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceServiceImpl.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/yh/price/service/impl/PriceServiceImpl.java
@@ -227,4 +227,31 @@ public class PriceServiceImpl implements PriceService
 
         return result == null ? 0 : result;
     }
+
+    @Override
+    public int enable(Long priceId) {
+        if (priceId == null) {
+            return 0;
+        }
+        PriceVO old = selectPriceByPriceId(priceId);
+        ServiceUtil.assertion(old == null, "待启用的单价不存在,请刷新后重试");
+        ServiceUtil.assertion(!PriceStatus.canEnable().contains(old.getStatus()), "待启用的单价当前状态不允许禁用");
+        ServiceUtil.assertion(old.getDisabled() != null && !old.getDisabled(), "待启用的单价已启用,请勿重复操作");
+
+        Integer result = transactionTemplate.execute(status -> {
+            Price data = new Price();
+            data.setDisabled(false);
+            PriceQuery query = new PriceQuery();
+            query.setStatusList(PriceStatus.canEnable());
+            query.setPriceId(priceId);
+            query.setDisabled(true);
+            int update = this.updateByQuery(data, query);
+            ServiceUtil.assertion(update != 1, "启用单价失败,当前状态已发生变化,请刷新后重试");
+
+            return update;
+        });
+
+        return result == null ? 0 : result;
+
+    }
 }