浏览代码

合同管理添加客户加入工作类型多选框

user5 5 年之前
父节点
当前提交
5b93bf7af3

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

@@ -6,7 +6,9 @@ package com.jeeplus.modules.workclientinfo.dao;
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientJobTypeInfo;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.entity.WorkContentInvestmentCost;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -41,4 +43,10 @@ public interface WorkClientLinkmanDao extends CrudDao<WorkClientLinkman> {
      * @return
      */
     List<WorkClientLinkman> queryLinkManByCompany(WorkClientLinkman workClientLinkman);
+
+    /**
+     * 客户信息和工作类型关系
+     * @param wlist
+     */
+    void jobTypeInsert(List<WorkClientJobTypeInfo> wlist);
 }

+ 10 - 0
src/main/java/com/jeeplus/modules/workclientinfo/entity/WorkClientInfo.java

@@ -64,6 +64,8 @@ public class WorkClientInfo extends DataEntity<WorkClientInfo> {
 	private String errInfo;
 	private String unitIntroduction;
 
+	private String jobTypeStr;
+
 	public String getUnitIntroduction() {
 		return unitIntroduction;
 	}
@@ -504,4 +506,12 @@ public class WorkClientInfo extends DataEntity<WorkClientInfo> {
 	public void setNumber(String number) {
 		this.number = number;
 	}
+
+	public String getJobTypeStr() {
+		return jobTypeStr;
+	}
+
+	public void setJobTypeStr(String jobTypeStr) {
+		this.jobTypeStr = jobTypeStr;
+	}
 }

+ 26 - 0
src/main/java/com/jeeplus/modules/workclientinfo/entity/WorkClientJobTypeInfo.java

@@ -0,0 +1,26 @@
+package com.jeeplus.modules.workclientinfo.entity;
+
+/**
+ * 客户和工作类型关系表
+ */
+public class WorkClientJobTypeInfo {
+
+    private String workClientId;
+    private String jobTypeId;
+
+    public String getWorkClientId() {
+        return workClientId;
+    }
+
+    public void setWorkClientId(String workClientId) {
+        this.workClientId = workClientId;
+    }
+
+    public String getJobTypeId() {
+        return jobTypeId;
+    }
+
+    public void setJobTypeId(String jobTypeId) {
+        this.jobTypeId = jobTypeId;
+    }
+}

+ 48 - 4
src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java

@@ -10,20 +10,22 @@ import com.jeeplus.common.oss.OSSClientUtil;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.common.utils.SpringContextHolder;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.serialnum.service.SerialNumTplService;
 import com.jeeplus.modules.sys.dao.AreaDao;
+import com.jeeplus.modules.sys.dao.MainDictDetailDao;
 import com.jeeplus.modules.sys.entity.Area;
+import com.jeeplus.modules.sys.entity.MainDict;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.MainDictService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientBankDao;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientInfoDao;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientLinkmanDao;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientBank;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workclientinfo.entity.*;
 import com.jeeplus.modules.workcontractinfo.dao.WorkContractInfoDao;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workreimbursement.utils.VarStr;
@@ -42,6 +44,7 @@ import java.net.HttpURLConnection;
 import java.net.URL;
 import java.net.URLEncoder;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -70,6 +73,11 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
     @Autowired
     private AreaDao areaDao;
 
+    private static MainDictService mainDictService = SpringContextHolder.getBean(MainDictService.class);
+
+    private static MainDictDetailDao mainDictDetailDao = SpringContextHolder.getBean(MainDictDetailDao.class);
+
+
     public WorkClientInfo get(String id) {
 	    if(StringUtils.isBlank(id)){
 	        return new WorkClientInfo();
@@ -272,6 +280,18 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
 		super.save(workClientInfo);
         long t2 = System.currentTimeMillis();
         logger.info("保存客户主表耗时:{}",t2-t1);
+        //保存客户和工作类型关系信息
+        if(StringUtils.isNotBlank(workClientInfo.getJobTypeStr())){
+            List<String> list = Arrays.asList(workClientInfo.getJobTypeStr().split(","));
+            List<WorkClientJobTypeInfo> workClientJobTypeList = new ArrayList<>();
+            for (String jobType:list){
+                WorkClientJobTypeInfo workClientJobTypeInfo = new WorkClientJobTypeInfo();
+                workClientJobTypeInfo.setJobTypeId(jobType);
+                workClientJobTypeInfo.setWorkClientId(workClientInfo.getId());
+                workClientJobTypeList.add(workClientJobTypeInfo);
+            }
+            workClientLinkmanDao.jobTypeInsert(workClientJobTypeList);
+        }
 		//联系人信息
 		for (WorkClientLinkman workClientLinkman : workClientInfo.getWorkClientLinkmanList()){
 			if (workClientLinkman.getId() == null){
@@ -588,4 +608,28 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
         return workClientInfoDao.findByName(workClientInfo);
     }
 
+
+    public List<MainDictDetail> getJobType(){
+        String type = "job_type";
+        List<MainDictDetail> dictList=new ArrayList<>();
+        String comId=UserUtils.getSelectCompany().getId();
+        String branchId=UserUtils.getSelectBranchOffice();
+        MainDict mainDict = mainDictService.getIdByName(type);
+        try {
+            MainDictDetail mainDictDetail = new MainDictDetail();
+            if("1".equals(mainDict.getDictType())){
+                mainDictDetail.setBranchOffice(comId);
+            }else{
+                mainDictDetail.setBranchOffice(branchId);
+            }
+            mainDictDetail.setType(type);
+            dictList = mainDictDetailDao.findAchievementParentIdList(mainDictDetail);
+            return dictList;
+        } catch (Exception e) {
+            System.out.println("获取业务字典失败!");
+        }
+        return dictList;
+    }
+
+
 }

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

@@ -18,6 +18,7 @@ import com.jeeplus.common.utils.TicketQueryUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.sysimportinfo.entity.SysImportInfo;
@@ -651,4 +652,31 @@ public class WorkClientInfoController extends BaseController {
        return "true";
 	}
 
+	/**
+	 * 查询工作类型
+	 * @return
+	 */
+	@RequestMapping("getJobType")
+	@ResponseBody
+	public AjaxJson getJobType(){
+		AjaxJson ajaxJson = new AjaxJson();
+		try {
+			List<MainDictDetail> getAchievementTypeList = workClientInfoService.getJobType();
+			List<Map<String, Object>> mapList = new ArrayList<>();
+			for (int i = 0; i < getAchievementTypeList.size(); i++) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("name", getAchievementTypeList.get(i).getLabel());
+				map.put("value", getAchievementTypeList.get(i).getValue());
+				mapList.add(map);
+			}
+			ajaxJson.getBody().put("list", mapList);
+			ajaxJson.setMsg("获取数据成功");
+		} catch (Exception e) {
+			logger.error("获取数据异常!", e);
+			ajaxJson.setSuccess(false);
+			ajaxJson.setMsg("获取数据异常");
+		}
+		return ajaxJson;
+	}
+
 }

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

@@ -310,5 +310,17 @@
 		</if>
 
 	</select>
+	<insert id="jobTypeInsert" parameterType="java.util.List">
+		INSERT INTO work_client_job_type_info(
+		work_client_id,
+		job_type_id
+		) VALUES
+		<foreach collection="list" item="item" separator=",">
+			( #{item.workClientId},
+			#{item.jobTypeId}
+			)
+		</foreach>
+	</insert>
+
 
 </mapper>

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

@@ -504,18 +504,18 @@
                                     <form:options items="${fns:getContentTypeList(projectcontentinfo.type-1)}" itemLabel="typeName" itemValue="typeId"></form:options>
                                 </c:when>
                                 <c:otherwise>
-                                    <optgroup label="决策阶段"/>
-                                    <form:options items="${fns:getContentTypeList('1')}" itemLabel="typeName" itemValue="typeId"></form:options>
-                                    <optgroup label="设计阶段"/>
+                                   <%-- <optgroup label="决策阶段"/>
+                                    <form:options items="${fns:getContentTypeList('1')}" itemLabel="typeName" itemValue="typeId"></form:options>--%>
+                                    <optgroup label="项目实施前期"/>
                                     <form:options items="${fns:getContentTypeList('2')}" itemLabel="typeName" itemValue="typeId"></form:options>
-                                    <optgroup label="发承包阶段"/>
-                                    <form:options items="${fns:getContentTypeList('3')}" itemLabel="typeName" itemValue="typeId"></form:options>
-                                    <optgroup label="实施阶段"/>
+                                    <%--<optgroup label="发承包阶段"/>
+                                    <form:options items="${fns:getContentTypeList('3')}" itemLabel="typeName" itemValue="typeId"></form:options>--%>
+                                    <optgroup label="项目实施阶段"/>
                                     <form:options items="${fns:getContentTypeList('4')}" itemLabel="typeName" itemValue="typeId"></form:options>
-                                    <optgroup label="竣工阶段"/>
+                                    <optgroup label="项目竣工阶段"/>
                                     <form:options items="${fns:getContentTypeList('5')}" itemLabel="typeName" itemValue="typeId"></form:options>
-                                    <optgroup label="运营阶段"/>
-                                    <form:options items="${fns:getContentTypeList('6')}" itemLabel="typeName" itemValue="typeId"></form:options>
+                                    <%--<optgroup label="运营阶段"/>
+                                    <form:options items="${fns:getContentTypeList('6')}" itemLabel="typeName" itemValue="typeId"></form:options>--%>
                                 </c:otherwise>
                             </c:choose>
                         </form:select>

+ 52 - 0
src/main/webapp/webpage/modules/workclientinfo/workClientInfoForm.jsp

@@ -8,6 +8,7 @@
 <head>
 	<title>客户信息管理</title>
 	<meta name="decorator" content="default"/>
+    <script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
     <%--<style type="text/css">--%>
         <%--.btn-file{--%>
             <%--margin-top:8px;--%>
@@ -42,6 +43,7 @@
 		var exitName = true;
 		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
 		  if(validateForm.form()){
+              var jobTypeStr = $("#jobTypeStr").val();
               var tableObj = document.getElementById('contentTable').rows[1];
               if (tableObj == null) {
                   parent.layer.msg("请填写联系人信息!", {icon: 5});
@@ -59,6 +61,7 @@
 		  return false;
 		}
 		$(document).ready(function() {
+            contentDetailTypeShow();
             checkContentKeyUp('unitIntroduction',500);
             $.validator.messages["orUnicode"] = true;
             $.validator.methods["orUnicode"] = function( value, element ) {
@@ -394,6 +397,7 @@
                    onkeydown="if(event.keyCode==13)return false;" action="${ctx}/workclientinfo/workClientInfo/save"
                    method="post" class="form-horizontal">
             <form:hidden path="id"/>
+            <input type="hidden" id="jobTypeStr" name="jobTypeStr" value="">
             <div class="form-group layui-row first">
                 <div class="form-group-label"><h2>基本信息</h2></div>
                 <div class="layui-item layui-col-sm6 lw7">
@@ -498,6 +502,13 @@
                         <form:input path="companyUrl" htmlEscape="false" class="form-control isUrl layui-input"/>
                     </div>
                 </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <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>
+                </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">
@@ -898,5 +909,46 @@
 
 
 <%--</script>--%>
+<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) {
+                    xmSelect.render({
+                        el: '#jobType',
+                        language: 'zn',
+                        data:data.body.list
+                    })
+                    $("#dataBodyList").val(data.body.list);
+                }
+            }
+        })
+    }
+
+    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>