Quellcode durchsuchen

Merge remote-tracking branch 'origin/developerB' into developerB

plf vor 3 Jahren
Ursprung
Commit
4313160fac

+ 4 - 0
src/main/java/com/caimei/modules/archive/dao/CmOrderArchiveDao.java

@@ -33,4 +33,8 @@ public interface CmOrderArchiveDao extends CrudDao<CmOrderArchive> {
     Integer checkShopOrderIdExist(Integer shopOrderId);
 
     Integer checkShopOrderIdAble(Integer shopOrderId);
+
+    String getShopNameByShopOrderId(Integer shopOrderId);
+
+    String getClubNameByShopOrderId(Integer shopOrderId);
 }

+ 36 - 30
src/main/java/com/caimei/modules/archive/service/CmOrderArchiveService.java

@@ -20,6 +20,7 @@ import com.caimei.utils.StringUtil;
 import com.thinkgem.jeesite.common.config.Global;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -60,15 +61,12 @@ public class CmOrderArchiveService extends CrudService<CmOrderArchiveDao, CmOrde
 	@Transactional(readOnly = false)
 	public void saveArchive(CmOrderArchive cmOrderArchive) {
         if (cmOrderArchive.getIsNewRecord()) {
-            SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
-            StringBuilder orderArchiveNo = new StringBuilder(format.format(new Date()));
-            Random random = new Random();
-            for (int i = 0; i < 8; i++) {
-                orderArchiveNo.append(random.nextInt(10));
-            }
-            cmOrderArchive.setArchiveNo(orderArchiveNo.toString());
             cmOrderArchive.setAddTime(new Date());
         }
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+        String date = format.format(new Date());
+        String orderArchiveNo = "CM-" + date + cmOrderArchive.getShopOrderId();
+        cmOrderArchive.setArchiveNo(orderArchiveNo);
 		super.save(cmOrderArchive);
         String fileIds = cmOrderArchive.getFileIds();
         if (StringUtil.isNotEmpty(fileIds)) {
@@ -92,11 +90,13 @@ public class CmOrderArchiveService extends CrudService<CmOrderArchiveDao, CmOrde
     @Transactional(readOnly = false)
     public Map<String, Object> upload(MultipartFile multipartFile, String fileName, Integer orderArchiveId, String fileIds) {
         Map<String, Object> map = new HashMap<>();
-        Integer fileIdByFileName = cmOrderArchiveDao.checkFileName(fileName, orderArchiveId, fileIds);
-        if (null != fileIdByFileName) {
-            map.put("success", false);
-            map.put("msg", "文件已存在");
-            return map;
+        if (null != orderArchiveId || StringUtils.isNotEmpty(fileIds)) {
+            Integer fileIdByFileName = cmOrderArchiveDao.checkFileName(fileName, orderArchiveId, fileIds);
+            if (null != fileIdByFileName) {
+                map.put("success", false);
+                map.put("msg", "文件已存在");
+                return map;
+            }
         }
         String fileAllName = multipartFile.getOriginalFilename();
         String fileType = fileAllName.substring(fileAllName.lastIndexOf(".") + 1);
@@ -203,32 +203,38 @@ public class CmOrderArchiveService extends CrudService<CmOrderArchiveDao, CmOrde
 
     public Map<String, Object> checkShopOrderId(CmOrderArchive cmOrderArchive) {
         HashMap<String, Object> result = new HashMap<>(2);
-        if (StringUtil.isEmpty(cmOrderArchive.getId())) {
-            result.put("code", -1);
-            result.put("msg", "请输入资料id");
+        // 检查子订单id是否存在
+        Integer existId = cmOrderArchiveDao.checkShopOrderIdExist(cmOrderArchive.getShopOrderId());
+        if (null == existId) {
+            result.put("code", -2);
+            result.put("msg", "该子订单ID无效");
             return result;
-        }
-        // 当新的子订单id和数据库中的子订单id不同时,校验新的子订单id是否可用
-        CmOrderArchive dbArchive = cmOrderArchiveDao.get(cmOrderArchive.getId());
-        if (!cmOrderArchive.getShopOrderId().equals(dbArchive.getShopOrderId())) {
-            // 检查子订单id是否存在
-            Integer existId = cmOrderArchiveDao.checkShopOrderIdExist(cmOrderArchive.getShopOrderId());
-            if (null == existId) {
-                result.put("code", -2);
-                result.put("msg", "子订单id不存在");
-                return result;
-            } else {
-                // 检查子订单是否已被使用
-                Integer ableId = cmOrderArchiveDao.checkShopOrderIdAble(cmOrderArchive.getShopOrderId());
-                if (null == ableId) {
+        } else {
+            // 检查子订单id是否已被使用
+            Integer ableId = cmOrderArchiveDao.checkShopOrderIdAble(cmOrderArchive.getShopOrderId());
+            if (null == ableId) {
+                if (StringUtils.isNotEmpty(cmOrderArchive.getId())) {
+                    // 当新的子订单id不可用时,判断新的子订单id和数据库中的子订单id是否相同
+                    CmOrderArchive dbArchive = cmOrderArchiveDao.get(cmOrderArchive.getId());
+                    if (!cmOrderArchive.getShopOrderId().equals(dbArchive.getShopOrderId())) {
+                        result.put("code", -3);
+                        result.put("msg", "该子订单ID已存在");
+                        return result;
+                    }
+                } else {
                     result.put("code", -3);
-                    result.put("msg", "该子订单id已使用");
+                    result.put("msg", "该子订单ID已存在");
                     return result;
                 }
             }
         }
+        // 获取子订单对应的供应商和机构名称
+        String shopName = cmOrderArchiveDao.getShopNameByShopOrderId(cmOrderArchive.getShopOrderId());
+        String clubName = cmOrderArchiveDao.getClubNameByShopOrderId(cmOrderArchive.getShopOrderId());
         result.put("code", 0);
         result.put("msg", "该子订单id可以使用");
+        result.put("shopName", shopName);
+        result.put("clubName", clubName);
         return result;
     }
 }

+ 194 - 158
src/main/resources/mappings/modules/archive/CmOrderArchiveMapper.xml

@@ -1,9 +1,9 @@
 <?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.caimei.modules.archive.dao.CmOrderArchiveDao">
-    
-	<sql id="cmOrderArchiveColumns">
-		a.id AS "id",
+
+    <sql id="cmOrderArchiveColumns">
+        a.id AS "id",
 		a.archiveNo AS "archiveNo",
 		a.title AS "title",
 		a.shopOrderId AS "shopOrderId",
@@ -14,171 +14,207 @@
 		a.remark AS "remark",
 		a.addTime AS "addTime",
 		so.orderID AS "orderId"
-	</sql>
-	
-	<sql id="cmOrderArchiveJoins">
-		left join cm_shop_order so on a.shopOrderId = so.shopOrderID
-	</sql>
-    
-	<select id="get" resultType="CmOrderArchive">
-		SELECT 
-			<include refid="cmOrderArchiveColumns"/>
-		FROM cm_order_archive a
-		<include refid="cmOrderArchiveJoins"/>
-		WHERE a.id = #{id}
-	</select>
-	
-	<select id="findList" resultType="CmOrderArchive">
-		SELECT 
-			<include refid="cmOrderArchiveColumns"/>
-		FROM cm_order_archive a
-		<include refid="cmOrderArchiveJoins"/>
-		<where>
-			
-			<if test="archiveNo != null and archiveNo != ''">
-				AND a.archiveNo LIKE 
-					<if test="dbName == 'oracle'">'%'||#{archiveNo}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{archiveNo}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{archiveNo},'%')</if>
-			</if>
-			<if test="title != null and title != ''">
-				AND a.title LIKE 
-					<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{title},'%')</if>
-			</if>
-			<if test="shopOrderId != null and shopOrderId != ''">
-				AND a.shopOrderId = #{shopOrderId}
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND a.shopName LIKE 
-					<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			<if test="clubName != null and clubName != ''">
-				AND a.clubName LIKE 
-					<if test="dbName == 'oracle'">'%'||#{clubName}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{clubName}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{clubName},'%')</if>
-			</if>
-			<if test="tag != null and tag != ''">
-				AND a.tag LIKE 
-					<if test="dbName == 'oracle'">'%'||#{tag}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{tag}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{tag},'%')</if>
-			</if>
-			<if test="rebateFlag != null">
-				AND a.rebateFlag = #{rebateFlag}
-			</if>
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
+    </sql>
+
+    <sql id="cmOrderArchiveJoins">
+        left join cm_shop_order so on a.shopOrderId = so.shopOrderID
+    </sql>
+
+    <select id="get" resultType="CmOrderArchive">
+        SELECT
+        <include refid="cmOrderArchiveColumns"/>
+        FROM cm_order_archive a
+        <include refid="cmOrderArchiveJoins"/>
+        WHERE a.id = #{id}
+    </select>
+
+    <select id="findList" resultType="CmOrderArchive">
+        SELECT
+        <include refid="cmOrderArchiveColumns"/>
+        FROM cm_order_archive a
+        <include refid="cmOrderArchiveJoins"/>
+        <where>
+
+            <if test="archiveNo != null and archiveNo != ''">
+                AND a.archiveNo LIKE
+                <if test="dbName == 'oracle'">'%'||#{archiveNo}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{archiveNo}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{archiveNo},'%')</if>
+            </if>
+            <if test="title != null and title != ''">
+                AND a.title LIKE
+                <if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{title},'%')</if>
+            </if>
+            <if test="shopOrderId != null and shopOrderId != ''">
+                AND a.shopOrderId = #{shopOrderId}
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND a.shopName LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            <if test="clubName != null and clubName != ''">
+                AND a.clubName LIKE
+                <if test="dbName == 'oracle'">'%'||#{clubName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{clubName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{clubName},'%')</if>
+            </if>
+            <if test="tag != null and tag != ''">
+                AND a.tag LIKE
+                <if test="dbName == 'oracle'">'%'||#{tag}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{tag}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{tag},'%')</if>
+            </if>
+            <if test="rebateFlag != null">
+                AND a.rebateFlag = #{rebateFlag}
+            </if>
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
                 order by a.id desc
-			</otherwise>
-		</choose>
-	</select>
-	
-	<select id="findAllList" resultType="CmOrderArchive">
-		SELECT 
-			<include refid="cmOrderArchiveColumns"/>
-		FROM cm_order_archive a
-		<include refid="cmOrderArchiveJoins"/>
-		<where>
-			
-		</where>		
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-			</otherwise>
-		</choose>
-	</select>
-	<select id="getArchiveFileList" resultType="com.caimei.modules.archive.entity.CmOrderArchiveFile">
-		select id, fileName, ossName, ossUrl
-		from cm_order_archive_file
-		where orderArchiveId = #{archiveId}
-	</select>
-	<select id="getArchiveFileById" resultType="com.caimei.modules.archive.entity.CmOrderArchiveFile">
-		select id, fileName, ossName
-		from cm_order_archive_file
-		where id = #{fileId}
-	</select>
-	<select id="getAllFileIds" resultType="java.lang.String">
-		select GROUP_CONCAT(id) from cm_order_archive_file where orderArchiveId = #{orderArchiveId} group by orderArchiveId
-	</select>
-	<select id="checkFileName" resultType="java.lang.Integer">
-		select id from cm_order_archive_file
-		<where>
-			fileName = #{fileName} and (
-			<if test="orderArchiveId != null">
-				orderArchiveId = #{orderArchiveId}
-			</if>
-			<if test="fileIds != null and fileIds != ''">
-				or id in
-				<foreach collection="fileIds.split(',')" item="fileId" index="index" open="(" separator="," close=")" >
-					#{fileId}
-				</foreach>
-			</if>
-			)
-		</where>
-	</select>
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findAllList" resultType="CmOrderArchive">
+        SELECT
+        <include refid="cmOrderArchiveColumns"/>
+        FROM cm_order_archive a
+        <include refid="cmOrderArchiveJoins"/>
+        <where>
+
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+            </otherwise>
+        </choose>
+    </select>
+    <select id="getArchiveFileList" resultType="com.caimei.modules.archive.entity.CmOrderArchiveFile">
+        select id, fileName, ossName, ossUrl
+        from cm_order_archive_file
+        where orderArchiveId = #{archiveId}
+    </select>
+    <select id="getArchiveFileById" resultType="com.caimei.modules.archive.entity.CmOrderArchiveFile">
+        select id, fileName, ossName
+        from cm_order_archive_file
+        where id = #{fileId}
+    </select>
+    <select id="getAllFileIds" resultType="java.lang.String">
+        select GROUP_CONCAT(id)
+        from cm_order_archive_file
+        where orderArchiveId = #{orderArchiveId}
+        group by orderArchiveId
+    </select>
+    <select id="checkFileName" resultType="java.lang.Integer">
+        select id from cm_order_archive_file
+        <where>
+            fileName = #{fileName}
+            <if test="orderArchiveId != null || (fileIds != null and fileIds != '')">
+                and(
+                <if test="orderArchiveId != null || (fileIds != null and fileIds != '')">
+                    orderArchiveId = #{orderArchiveId}
+                </if>
+                <if test="fileIds != null and fileIds != ''">
+                    or id in
+                    <foreach collection="fileIds.split(',')" item="fileId" index="index" open="(" separator=","
+                             close=")">
+                        #{fileId}
+                    </foreach>
+                </if>
+                )
+            </if>
+        </where>
+    </select>
     <select id="checkShopOrderIdExist" resultType="java.lang.Integer">
-        select so.shopOrderID from cm_shop_order so
+        select so.shopOrderID
+        from cm_shop_order so
         where so.shopOrderID = #{shopOrderId}
     </select>
 
     <select id="checkShopOrderIdAble" resultType="java.lang.Integer">
-        select so.shopOrderID from cm_shop_order so
+        select so.shopOrderID
+        from cm_shop_order so
         where so.shopOrderID = #{shopOrderId}
-        and so.shopOrderID not in
-        (select a.shopOrderId from cm_order_archive a
-        where a.shopOrderId is not null) limit 1
+          and so.shopOrderID not in
+              (select a.shopOrderId
+               from cm_order_archive a
+               where a.shopOrderId is not null)
+        limit 1
+    </select>
+    <select id="getShopNameByShopOrderId" resultType="java.lang.String">
+        select s.name
+        from cm_shop_order cso
+                 left join shop s on cso.shopID = s.shopID
+        where cso.shopOrderID = #{shopOrderId}
+    </select>
+    <select id="getClubNameByShopOrderId" resultType="java.lang.String">
+        select c.name
+        from cm_shop_order cso
+                 left join club c on cso.clubID = c.clubID
+        where cso.shopOrderID = #{shopOrderId}
     </select>
 
-    <insert id="insert" parameterType="CmOrderArchive"  keyProperty="id" useGeneratedKeys="true">
-		INSERT INTO cm_order_archive(
-			archiveNo,
-			addTime
-		) VALUES (
-			#{archiveNo},
-			#{addTime}
-		)
-	</insert>
-	<insert id="insertArchiveFile" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
-		insert into cm_order_archive_file(fileName, ossName, ossUrl, uploadTime)
-		values (#{fileName}, #{ossName}, #{ossUrl}, #{uploadTime})
-	</insert>
+    <insert id="insert" parameterType="CmOrderArchive" keyProperty="id" useGeneratedKeys="true">
+        INSERT INTO cm_order_archive(archiveNo,
+                                     title,
+                                     shopOrderId,
+                                     shopName,
+                                     clubName,
+                                     tag,
+                                     rebateFlag,
+                                     remark,
+                                     addTime)
+        VALUES (#{archiveNo},
+                #{title},
+                #{shopOrderId},
+                #{shopName},
+                #{clubName},
+                #{tag},
+                #{rebateFlag},
+                #{remark},
+                #{addTime})
+    </insert>
+    <insert id="insertArchiveFile" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
+        insert into cm_order_archive_file(fileName, ossName, ossUrl, uploadTime)
+        values (#{fileName}, #{ossName}, #{ossUrl}, #{uploadTime})
+    </insert>
 
-	<update id="update">
-		UPDATE cm_order_archive SET 	
-			title = #{title},
-			shopOrderId = #{shopOrderId},
-			shopName = #{shopName},
-			clubName = #{clubName},
-			tag = #{tag},
-			rebateFlag = #{rebateFlag},
-			remark = #{remark}
-		WHERE id = #{id}
-	</update>
-	<update id="updateArchiveFile">
-		update cm_order_archive_file
-		set orderArchiveId = #{orderArchiveId}
-		where id = #{fileId}
-	</update>
+    <update id="update">
+        UPDATE cm_order_archive
+        SET archiveNo   = #{archiveNo},
+            title       = #{title},
+            shopOrderId = #{shopOrderId},
+            shopName    = #{shopName},
+            clubName    = #{clubName},
+            tag         = #{tag},
+            rebateFlag  = #{rebateFlag},
+            remark      = #{remark}
+        WHERE id = #{id}
+    </update>
+    <update id="updateArchiveFile">
+        update cm_order_archive_file
+        set orderArchiveId = #{orderArchiveId}
+        where id = #{fileId}
+    </update>
 
-	<delete id="delete">
-		DELETE FROM cm_order_archive
-		WHERE id = #{id}
-	</delete>
-	<delete id="deleteArchiveFile">
-		delete
-		from cm_order_archive_file
-		where id = #{fileId}
-	</delete>
+    <delete id="delete">
+        DELETE
+        FROM cm_order_archive
+        WHERE id = #{id}
+    </delete>
+    <delete id="deleteArchiveFile">
+        delete
+        from cm_order_archive_file
+        where id = #{fileId}
+    </delete>
 
 </mapper>

+ 28 - 13
src/main/webapp/WEB-INF/views/modules/archive/cmOrderArchiveForm.jsp

@@ -11,15 +11,19 @@
 				submitHandler: function(form){
 					var orderArchiveId = $("#id").val();
 					var shopOrderId = $("#shopOrderId").val();
-					$.post("${ctx}/archive/cmOrderArchive/checkShopOrderId",{"id":orderArchiveId,"shopOrderId":shopOrderId},function (result) {
-						if (result.code != 0) {
-							var errorMsg = result.msg;
-							jBox.tip(errorMsg, "error");
-						} else {
-							loading('正在提交,请稍等...');
-							form.submit();
-						}
-					})
+					if (isNaN(shopOrderId)) {
+						jBox.tip("请输入正确的子订单ID", "error");
+					} else {
+						$.post("${ctx}/archive/cmOrderArchive/checkShopOrderId",{"id":orderArchiveId,"shopOrderId":shopOrderId},function (result) {
+							if (result.code != 0) {
+								var errorMsg = result.msg;
+								jBox.tip(errorMsg, "error");
+							} else {
+								loading('正在提交,请稍等...');
+								form.submit();
+							}
+						});
+					}
 				},
 				errorContainer: "#messageBox",
 				errorPlacement: function(error, element) {
@@ -38,7 +42,18 @@
          * jquery控制input只能输入数字
          */
         function onlynum(obj) {
+            debugger
             obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字"以外的字符
+			var orderArchiveId = $("#id").val();
+			var shopOrderId = $("#shopOrderId").val();
+			if (shopOrderId.length >= 3) {
+				$.post("${ctx}/archive/cmOrderArchive/checkShopOrderId",{"id":orderArchiveId,"shopOrderId":shopOrderId},function (result) {
+					if (result.code == 0) {
+						$("#clubName").val(result.clubName);
+						$("#shopName").val(result.shopName);
+					}
+				});
+			}
         }
 	</script>
 	<style>
@@ -204,15 +219,15 @@
             </div>
 		</div>
 		<div class="control-group">
-			<label class="control-label"><font color="red">*</font>供应商名称:</label>
+			<label class="control-label">供应商名称:</label>
 			<div class="controls">
-				<form:input path="shopName" htmlEscape="false" maxlength="50" class="input-xlarge required"/>
+				<form:input path="shopName" htmlEscape="false" maxlength="50" class="input-xlarge"/>
 			</div>
 		</div>
 		<div class="control-group">
-			<label class="control-label"><font color="red">*</font>机构名称:</label>
+			<label class="control-label">机构名称:</label>
 			<div class="controls">
-				<form:input path="clubName" htmlEscape="false" maxlength="50" class="input-xlarge required"/>
+				<form:input path="clubName" htmlEscape="false" maxlength="50" class="input-xlarge"/>
 			</div>
 		</div>
 		<div class="control-group">

+ 1 - 1
src/main/webapp/WEB-INF/views/modules/archive/cmOrderArchiveList.jsp

@@ -81,7 +81,7 @@
         </form:select>
         &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
         &nbsp;&nbsp;<input class="btn btn-primary" style="width: 120px"
-                           onclick="window.location='${ctx}/archive/cmOrderArchive/save'" value="生成订单资料编号"/>
+                           onclick="window.location='${ctx}/archive/cmOrderArchive/form'" value="添加"/>
         <div class="clearfix"></div>
     </div>
 </form:form>