Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

user7 5 anni fa
parent
commit
b7015e1445

+ 3 - 0
src/main/java/com/jeeplus/modules/workclientinfo/dao/WorkClientInfoDao.java

@@ -5,6 +5,7 @@ package com.jeeplus.modules.workclientinfo.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 
 import java.util.List;
@@ -29,4 +30,6 @@ public interface WorkClientInfoDao extends CrudDao<WorkClientInfo> {
 
 
     List<WorkClientInfo> findByName(WorkClientInfo workClientInfo);
+
+    List<MainDictDetail> getJobTypeById(String id);
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/workclientinfo/dao/WorkClientLinkmanDao.java

@@ -49,4 +49,6 @@ public interface WorkClientLinkmanDao extends CrudDao<WorkClientLinkman> {
      * @param wlist
      */
     void jobTypeInsert(List<WorkClientJobTypeInfo> wlist);
+
+    void jobTypeDelete(String workClientId);
 }

+ 22 - 0
src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java

@@ -271,6 +271,11 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
      */
 	@Transactional(readOnly = false)
 	public void save(WorkClientInfo workClientInfo) {
+	    //判定是否为修改类型
+	    boolean flag = false;
+	    if(StringUtils.isNotBlank(workClientInfo.getId())){
+            flag = true;
+        }
 	    User user = UserUtils.getUser();
         long t1 = System.currentTimeMillis();
         Area area = workClientInfo.getArea();
@@ -280,6 +285,12 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
 		super.save(workClientInfo);
         long t2 = System.currentTimeMillis();
         logger.info("保存客户主表耗时:{}",t2-t1);
+        //若为修改内容则删除对应的客户工作类型信息
+        if(flag){
+            if(StringUtils.isNotBlank(workClientInfo.getJobTypeStr())){
+                workClientLinkmanDao.jobTypeDelete(workClientInfo.getId());
+            }
+        }
         //保存客户和工作类型关系信息
         if(StringUtils.isNotBlank(workClientInfo.getJobTypeStr())){
             List<String> list = Arrays.asList(workClientInfo.getJobTypeStr().split(","));
@@ -631,5 +642,16 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
         return dictList;
     }
 
+    public List<MainDictDetail> getJobTypeById(String id){
+        List<MainDictDetail> dictList=new ArrayList<>();
+        try {
+            dictList = workClientInfoDao.getJobTypeById(id);
+            return dictList;
+        } catch (Exception e) {
+            e.getMessage();
+        }
+        return dictList;
+    }
+
 
 }

+ 25 - 0
src/main/java/com/jeeplus/modules/workclientinfo/web/WorkClientInfoController.java

@@ -678,5 +678,30 @@ public class WorkClientInfoController extends BaseController {
 		}
 		return ajaxJson;
 	}
+	/**
+	 * 查询工作类型
+	 * @return
+	 */
+	@RequestMapping("getJobTypeById")
+	@ResponseBody
+	public AjaxJson getJobTypeById(String id){
+		AjaxJson ajaxJson = new AjaxJson();
+		try {
+			List<MainDictDetail> getJobTypeById = workClientInfoService.getJobTypeById(id);
+			List<Map<String, Object>> mapList = new ArrayList<>();
+			for (int i = 0; i < getJobTypeById.size(); i++) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("value", getJobTypeById.get(i).getTypeId());
+				mapList.add(map);
+			}
+			ajaxJson.getBody().put("list", mapList);
+			ajaxJson.setMsg("获取数据成功");
+		} catch (Exception e) {
+			logger.error("获取数据异常!", e);
+			ajaxJson.setSuccess(false);
+			ajaxJson.setMsg("获取数据异常");
+		}
+		return ajaxJson;
+	}
 
 }

+ 6 - 0
src/main/resources/mappings/modules/workclientinfo/WorkClientInfoDao.xml

@@ -381,4 +381,10 @@
 			</if>
 		</where>
 	</select>
+
+	<select id="getJobTypeById" resultType="MainDictDetail">
+		select work_client_id as "id",job_type_id as typeId
+		from work_client_job_type_info
+		where work_client_id = #{id}
+	</select>
 </mapper>

+ 4 - 0
src/main/resources/mappings/modules/workclientinfo/WorkClientLinkmanDao.xml

@@ -322,5 +322,9 @@
 		</foreach>
 	</insert>
 
+	<delete id="jobTypeDelete">
+		delete from work_client_job_type_info where work_client_id =#{workClientId}
+	</delete>
+
 
 </mapper>

+ 5 - 12
src/main/webapp/webpage/modules/projectcontentinfo/workContentForm.jsp

@@ -937,7 +937,6 @@
                                             newDataList.push(holdDataList[i])
                                         }
                                     }
-                                    var showList = [];
                                     if (0 != newDataList.length && 0 !=tableTypeList.length){
                                         for (i in newDataList) {
                                             for (j in tableTypeList) {
@@ -947,30 +946,24 @@
                                                         "value": newDataList[i].value,
                                                         "selected": true
                                                     }
-                                                    showList.push(newData);
-                                                    holdDataList.splice(0,1);
-                                                }/* else {
-                                                    showList.push(dataList[i]);
-                                                }*/
+                                                    holdDataList.splice(i,1,newData);
+                                                }
                                                 modifyGetDetailsNum(tableTypeList);
                                             }
                                         }
-                                        for (i in holdDataList){
-                                            showList.push(holdDataList[i]);
-                                        }
                                         xmSelect.render({
                                             el: '#contentDetailType',
                                             language: 'zn',
-                                            data: showList
+                                            data: holdDataList
                                         })
-                                        $("#dataBodyList").val(showList);
+                                        $("#dataBodyList").val(holdDataList);
                                     }else{
                                         xmSelect.render({
                                             el: '#contentDetailType',
                                             language: 'zn',
                                             data: dataList
                                         })
-                                        $("#dataBodyList").val(showList);
+                                        $("#dataBodyList").val(holdDataList);
                                     }
                                 }
                             })

+ 4 - 9
src/main/webapp/webpage/modules/projectcontentinfo/workContentView.jsp

@@ -838,7 +838,6 @@
                                             newDataList.push(holdDataList[i])
                                         }
                                     }
-                                    var showList = [];
                                     if (0 != newDataList.length && 0 !=tableTypeList.length){
                                         for (i in newDataList) {
                                             for (j in tableTypeList) {
@@ -848,28 +847,24 @@
                                                         "value": newDataList[i].value,
                                                         "selected": true
                                                     }
-                                                    showList.push(newData);
-                                                    holdDataList.splice(0,1);
+                                                    holdDataList.splice(i,1,newData);
                                                 }
                                             }
                                         }
-                                        for (i in holdDataList){
-                                            showList.push(holdDataList[i]);
-                                        }
                                         xmSelect.render({
                                             el: '#contentDetailType',
                                             language: 'zn',
-                                            data: showList
+                                            data: holdDataList
                                         })
                                         modifyGetDetailsNum(tableTypeList);
-                                        $("#dataBodyList").val(showList);
+                                        $("#dataBodyList").val(holdDataList);
                                     }else{
                                         xmSelect.render({
                                             el: '#contentDetailType',
                                             language: 'zn',
                                             data: dataList
                                         })
-                                        $("#dataBodyList").val(showList);
+                                        $("#dataBodyList").val(holdDataList);
                                     }
                                 }
                             })

+ 38 - 6
src/main/webapp/webpage/modules/workclientinfo/workClientInfoForm.jsp

@@ -44,6 +44,10 @@
 		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
 		  if(validateForm.form()){
               var jobTypeStr = $("#jobTypeStr").val();
+              if (jobTypeStr == null || "" == jobTypeStr) {
+                  parent.layer.msg("请选择联系人类型!", {icon: 5});
+                  return false;
+              }
               var tableObj = document.getElementById('contentTable').rows[1];
               if (tableObj == null) {
                   parent.layer.msg("请填写联系人信息!", {icon: 5});
@@ -503,7 +507,7 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
-                    <label class="layui-form-label"><span class="require-item">*</span>工作类型:</label>
+                    <label class="layui-form-label"><span class="require-item">*</span>联系人类型:</label>
                     <div class="layui-input-block">
                         <div id="jobType" class="xm-select-demo" tabindex="0" contenteditable="true"></div>
                     </div>
@@ -920,12 +924,40 @@
             },
             success:function(data){
                 if(data.success) {
-                    xmSelect.render({
-                        el: '#jobType',
-                        language: 'zn',
-                        data:data.body.list
+                var data = data.body.list;
+                var newDataList = data;
+                var showList = [];
+                    $.ajax({
+                        type:'post',
+                        url:'${ctx}/workclientinfo/workClientInfo/getJobTypeById',
+                        data:{
+                            "id":$("#id").val()
+                        },
+                        success:function(dataListById){
+                            if(dataListById.success) {
+                                var showDataList = dataListById.body.list;
+
+                                for (i in newDataList) {
+                                    for (j in showDataList) {
+                                        if (newDataList[i].value == showDataList[j].value) {
+                                            var newData = {
+                                                "name": newDataList[i].name,
+                                                "value": newDataList[i].value,
+                                                "selected": true
+                                            }
+                                            showList.push(newData);
+                                            data.splice(i,1,newData);
+                                        }
+                                    }
+                                }
+                                xmSelect.render({
+                                    el: '#jobType',
+                                    language: 'zn',
+                                    data:data
+                                })
+                            }
+                        }
                     })
-                    $("#dataBodyList").val(data.body.list);
                 }
             }
         })

+ 86 - 0
src/main/webapp/webpage/modules/workclientinfo/workClientInfoFormDetail.jsp

@@ -4,11 +4,18 @@
 <head>
     <title>客户信息</title>
     <meta name="decorator" content="default"/>
+    <script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
+    <script>
+        $(document).ready(function() {
+            contentDetailTypeShow();
+        });
+    </script>
 </head>
 <body >
 <div class="single-form view-form">
     <div class="container">
         <div class="form-group layui-row first">
+            <input type="hidden" id="id" value="${workClientInfo.id}">
             <div class="form-group-label"><h2>基本信息</h2></div>
             <div class="layui-item layui-col-sm6 lw7">
                 <label class="layui-form-label"><span class="require-item">*</span>客户名称:</label>
@@ -86,6 +93,17 @@
                     <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${workClientInfo.companyUrl}"/>
                 </div>
             </div>
+            <div class="layui-item layui-col-sm6 lw7">
+                <label class="layui-form-label">联系人类型:</label>
+                <div class="layui-input-block">
+                    <div class="input-group">
+                        <div >
+                            <div id="jobType" style="pointer-events: none;" class="xm-select-demo" tabindex="0" contenteditable="true"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
             <div class="layui-item layui-col-sm12 lw7">
                 <label class="layui-form-label"><span class="require-item">*</span>注册地址:</label>
                 <div class="layui-input-block">
@@ -240,6 +258,74 @@
 
     </div>
 </div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    function contentDetailTypeShow() {
+        $.ajax({
+            type:'post',
+            url:'${ctx}/workclientinfo/workClientInfo/getJobType',
+            data:{
+                "type":2
+            },
+            success:function(data){
+                if(data.success) {
+                    var data = data.body.list;
+                    var newDataList = data;
+                    var showList = [];
+                    $.ajax({
+                        type:'post',
+                        url:'${ctx}/workclientinfo/workClientInfo/getJobTypeById',
+                        data:{
+                            "id":$("#id").val()
+                        },
+                        success:function(dataListById){
+                            if(dataListById.success) {
+                                var showDataList = dataListById.body.list;
+
+                                for (i in newDataList) {
+                                    for (j in showDataList) {
+                                        if (newDataList[i].value == showDataList[j].value) {
+                                            var newData = {
+                                                "name": newDataList[i].name,
+                                                "value": newDataList[i].value,
+                                                "selected": true
+                                            }
+                                            showList.push(newData);
+                                            data.splice(i,1,newData);
+                                        }
+                                    }
+                                }
+                                xmSelect.render({
+                                    el: '#jobType',
+                                    language: 'zn',
+                                    data:data
+                                })
+                            }
+                        }
+                    })
+                }
+            }
+        })
+    }
+
+    var jobType = xmSelect.render({
+        el: '#jobType',
+        language: 'zn',
+        data: [
+        ]
+    })
+
 
+    document.getElementById('jobType').onblur=function(){
+        var list = [];
+        //获取当前多选选中的值
+        var selectArr = jobType.getValue();
+        for (var i in selectArr){
+            list.push(selectArr[i].value);
+        }
+        $("#jobTypeStr").val(list);
+        console.log(list);
+    }
+</script>
 </body>
 </html>