src/main/java/com/zy/crm/manager/controller/PriQuoteController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/crm/manager/entity/PriQuote.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/PriQuoteMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/priQuote/priQuote.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/priQuote/priQuote_more.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/crm/manager/controller/PriQuoteController.java
@@ -1,5 +1,6 @@ package com.zy.crm.manager.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -11,15 +12,15 @@ import com.core.common.DateUtils; import com.core.common.R; import com.core.domain.KeyValueVo; import com.zy.crm.common.model.SettleDto; import com.zy.crm.common.web.BaseController; import com.zy.crm.manager.entity.Item; import com.zy.crm.manager.entity.Plan; import com.zy.crm.manager.entity.PriQuote; import com.zy.crm.manager.entity.PriQuoteBudget; import com.zy.crm.manager.entity.*; import com.zy.crm.manager.service.ItemService; import com.zy.crm.manager.service.PlanService; import com.zy.crm.manager.service.PriQuoteBudgetService; import com.zy.crm.manager.service.PriQuoteService; import com.zy.crm.system.entity.User; import com.zy.crm.system.service.UserService; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; @@ -42,12 +43,27 @@ private PlanService planService; @Autowired private UserService userService; @Autowired private PriQuoteBudgetService priQuoteBudgetService; @RequestMapping(value = "/priQuote/{id}/auth") @ManagerAuth public R get(@PathVariable("id") String id) { return R.ok(priQuoteService.selectById(String.valueOf(id))); PriQuote priQuote = priQuoteService.selectById(String.valueOf(id)); assert priQuote != null; JSONObject resultObj = JSON.parseObject(JSON.toJSONString(priQuote)); if (!Cools.isEmpty(priQuote.getForm())) { JSONObject formObj = JSON.parseObject(priQuote.getForm()); formObj.forEach(resultObj::putIfAbsent); } // 步骤条相关 resultObj.put("step", priQuote.getSettle() == 5 ? 0 : priQuote.getSettle() + 1); return R.ok().add(resultObj); // return R.ok(priQuoteService.selectById(String.valueOf(id))); } @RequestMapping(value = "/priQuote/list/auth") @@ -127,6 +143,12 @@ //设置项目流程 plan.setStep(5); priQuote.setForm(JSON.toJSONString(map)); // 自定义表单内容 priQuote.setSettle(1); // 1.开始 User manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 获取部门领导 priQuote.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager))); planService.updateById(plan); priQuoteService.insert(priQuote); src/main/java/com/zy/crm/manager/entity/PriQuote.java
@@ -86,6 +86,25 @@ @TableField("member_id") private Long memberId; /** * 表单内容 */ @ApiModelProperty(value= "表单内容") private String form; /** * 进度 1: 开始 2: 组长审核 3: 售前组长审核 4: 规划员审核 5: 审批通过 */ @ApiModelProperty(value= "进度 1: 开始 2: 组长审核 3: 售前审核 4: 规划员审核 5: 审批通过 ") private Integer settle; /** * 审核进度 */ @ApiModelProperty(value= "审核进度") @TableField("settle_msg") private String settleMsg; public PriQuote() {} public PriQuote(String title,String sheetData,Date createTime,String filepath) { @@ -95,6 +114,24 @@ this.filepath = filepath; } public String getSettle$(){ if (null == this.settle){ return null; } switch (this.settle){ case 1: return "等待组长审核"; case 2: return "等待售前分配规划员"; case 3: return "等待规划员提交"; case 4: return "规划员已提交"; case 5: return "审批通过"; default: return String.valueOf(this.settle); } } public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; src/main/resources/mapper/PriQuoteMapper.xml
@@ -9,6 +9,9 @@ <result column="sheet_data" property="sheetData" /> <result column="create_time" property="createTime" /> <result column="dept_id" property="deptId" /> <result column="form" property="form" /> <result column="settle" property="settle" /> <result column="settle_msg" property="settleMsg" /> </resultMap> src/main/webapp/static/js/priQuote/priQuote.js
@@ -3,8 +3,9 @@ layui.config({ base: baseUrl + "/static/layui/lay/modules/" }).extend({ steps: 'steps/steps', cascader: 'cascader/cascader', }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown','layer','upload', 'cascader'], function(){ }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'steps', 'tree', 'dropdown','layer','upload', 'cascader'], function(){ var table = layui.table; var $ = layui.jquery; var layer = layui.layer; @@ -12,6 +13,7 @@ var form = layui.form; admin = layui.admin; var tree = layui.tree; var steps = layui.steps; var element = layui.element; var upload = layui.upload; var xmSelect = layui.xmSelect; @@ -117,7 +119,7 @@ if (res.code === 403) { top.location.href = baseUrl+"/"; } pageCurr=curr; pageCurr=curr;pageCount=count; limit(); } }); @@ -150,20 +152,6 @@ var checkStatus = table.checkStatus(obj.config.id); console.log(checkStatus) switch(obj.event) { case 'more': top.priQuoteByMore = obj.data.id; console.log(top.priQuoteByMore) admin.popupRight({ type: 1, window: "top", area: "1250px", url: "priQuote_more.html", end: function () { // $(".layui-laypage-btn")[0].click(); } }) break; case 'addBlank': showEditModel(); break; @@ -250,6 +238,20 @@ table.on('tool(priQuote)', function(obj){ var data = obj.data; switch (obj.event) { case 'more': top.priQuoteByMore = data.id; console.log(top.priQuoteByMore) admin.popupRight({ type: 1, window: "top", area: "1250px", url: "priQuote_more.html", end: function () { // $(".layui-laypage-btn")[0].click(); } }) break; case "quote": layer.open({ type: 2, src/main/webapp/views/priQuote/priQuote_more.html
@@ -46,7 +46,7 @@ <div> <i class="layui-icon" style="font-size: 20px;color: #1890ff;font-weight: bold"></i> <span id="form-name" style="margin: 0 6px;font-size: 18px;font-weight: bold;letter-spacing: 1px"></span> <span style="opacity: .5;font-size: small;margin-left: 5px">售前规划申请单</span> <span style="opacity: .5;font-size: small;margin-left: 5px">报价单</span> </div> </div> <div class="layui-card-body" style="padding: 30px 20px"> @@ -75,7 +75,7 @@ <!-- 时间线 --> <div class="layui-card"> <div class="layui-card-header"> <span>售前规划清单</span> <span>报价单</span> </div> <div class="layui-card-body"> <ul class="layui-timeline" id="timelineBox">