diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java index 2adb99f97..99fcb31c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProductRequireController.java @@ -1,6 +1,9 @@ package com.ruoyi.busi.controller; +import java.util.Collections; import java.util.List; + +import org.apache.commons.collections4.ListUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -86,6 +89,15 @@ public class BusiProductRequireController extends BaseController @ResponseBody public AjaxResult addSave(BusiProductRequire busiProductRequire) { + BusiProductRequire query = new BusiProductRequire(); + query.setOrderId(busiProductRequire.getOrderId()); + query.setColor(busiProductRequire.getColor()); + query.setSize(busiProductRequire.getSize()); + + List list = busiProductRequireService.selectBusiProductRequireList(query); + if(!list.isEmpty()){ + return error("该订单已存在相同尺码颜色的产品"); + } return toAjax(busiProductRequireService.insertBusiProductRequire(busiProductRequire)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductRequire.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductRequire.java index 38847a174..5fe32edf3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductRequire.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProductRequire.java @@ -21,9 +21,12 @@ public class BusiProductRequire extends BaseEntity /** ID主键 */ private String id; + /** 订单ID */ + private String orderId; + /** 订单名称 */ @Excel(name = "订单名称") - private String orderId; + private String orderName; /** 数量 */ @Excel(name = "数量") @@ -110,11 +113,20 @@ public class BusiProductRequire extends BaseEntity this.busiMaterialRequireList = busiMaterialRequireList; } + public String getOrderName() { + return orderName; + } + + public void setOrderName(String orderName) { + this.orderName = orderName; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("orderId", getOrderId()) + .append("orderName", getOrderName()) .append("amount", getAmount()) .append("size", getSize()) .append("color", getColor()) diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiProductRequireMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiProductRequireMapper.xml index 3b3619d5a..c9673b861 100644 --- a/ruoyi-admin/src/main/resources/mapper/busi/BusiProductRequireMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiProductRequireMapper.xml @@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -35,23 +36,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, order_id, amount, size, color, create_by, create_time, update_by, update_time, end_date from busi_product_require + select A.id, A.order_id,B.order_name, A.amount,A.size, A.color, A.create_by, A.create_time, A.update_by, A.update_time, A.end_date + from busi_product_require A LEFT JOIN busi_order B on A.order_id = B.id diff --git a/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html b/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html index 4b155410d..7df4a29c9 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productRequire/add.html @@ -11,7 +11,7 @@
- +
@@ -70,11 +70,34 @@ }); function submitHandler() { - if ($.validate.form()) { + if (sizeAndColorValidate() && $.validate.form()) { $.operate.save(prefix + "/add", $('#form-productRequire-add').serialize()); } } + function sizeAndColorValidate() { + var colors = $("table select[name$='color']"); + var classify = $("table select[name$='classify']"); + colors.removeClass("error"); + classify.removeClass("error"); + var colorAndClassify = []; + var result = true; + classify.each(function (i, ele) { + var ele = colors[i].value + classify[i].value; + var index = colorAndClassify.indexOf(ele); + if ( index >= 0) { + $(colors[i]).addClass("error"); + $(classify[i]).addClass("error"); + $(colors[index]).addClass("error"); + $(classify[index]).addClass("error"); + result = false; + } else { + colorAndClassify.push(ele); + } + }); + return result; + } + $("input[name='endDate']").datetimepicker({ format: "yyyy-mm-dd", minView: "month", @@ -107,7 +130,7 @@ align: 'center', title: '数量', formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); + var html = $.common.sprintf("", index, value); return html; } }, diff --git a/ruoyi-admin/src/main/resources/templates/busi/productRequire/edit.html b/ruoyi-admin/src/main/resources/templates/busi/productRequire/edit.html index 1038e3a66..c8daf976e 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productRequire/edit.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productRequire/edit.html @@ -12,19 +12,20 @@
- + +
- +
-
@@ -32,7 +33,7 @@
-
@@ -70,14 +71,38 @@ }); function submitHandler() { - if ($.validate.form()) { + if (colorAndClassifyValidate() && $.validate.form()) { $.operate.save(prefix + "/edit", $('#form-productRequire-edit').serialize()); } } + function colorAndClassifyValidate() { + var colors = $("table select[name$='color']"); + var classify = $("table select[name$='classify']"); + colors.removeClass("error"); + classify.removeClass("error"); + var colorAndClassify = []; + var result = true; + classify.each(function (i, ele) { + var ele = colors[i].value + classify[i].value; + var index = colorAndClassify.indexOf(ele); + if ( index >= 0) { + $(colors[i]).addClass("error"); + $(classify[i]).addClass("error"); + $(colors[index]).addClass("error"); + $(classify[index]).addClass("error"); + result = false; + } else { + colorAndClassify.push(ele); + } + }); + return result; + } + $("input[name='endDate']").datetimepicker({ format: "yyyy-mm-dd", minView: "month", + startDate: new Date(), autoclose: true }); @@ -107,7 +132,7 @@ align: 'center', title: '数量', formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); + var html = $.common.sprintf("", index, value); return html; } }, diff --git a/ruoyi-admin/src/main/resources/templates/busi/productRequire/productRequire.html b/ruoyi-admin/src/main/resources/templates/busi/productRequire/productRequire.html index a151e2b24..bb3fb517a 100644 --- a/ruoyi-admin/src/main/resources/templates/busi/productRequire/productRequire.html +++ b/ruoyi-admin/src/main/resources/templates/busi/productRequire/productRequire.html @@ -82,7 +82,7 @@ visible: false }, { - field: 'orderId', + field: 'orderName', title: '订单名称' }, {