Commit 4ba59fe8 authored by danfuman's avatar danfuman
parents 079628fa 20c00609
package com.dsk.web.controller.business;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletResponse;
import com.dsk.common.core.domain.entity.BusinessBacklog;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.system.service.IBusinessBacklogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.core.page.TableDataInfo;
/**
* 项目工作待办Controller
*
* @author lxl
* @date 2023-05-17
*/
@Api("项目工作待办")
@RestController
@RequestMapping("/business/backlog")
@Slf4j
public class BusinessBacklogController extends BaseController
{
@Autowired
private IBusinessBacklogService businessBacklogService;
/**
* 分页查询项目工作待办列表
*/
// @PreAuthorize("@ss.hasPermi('system:backlog:list')")
@GetMapping("/list")
public TableDataInfo list(@RequestBody BusinessBacklog businessBacklog)
{
startPage();
List<BusinessBacklog> list = businessBacklogService.selectBusinessBacklogList(businessBacklog);
return getDataTable(list);
}
/**
* 新增项目工作待办
*/
@ApiOperation("新增项目工作待办")
// @PreAuthorize("@ss.hasPermi('system:backlog:add')")
// @Log(title = "项目工作待办", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody BusinessBacklog businessBacklog)
{
return toAjax(businessBacklogService.insertBusinessBacklog(businessBacklog));
}
/**
* 修改项目工作待办
*/
// @PreAuthorize("@ss.hasPermi('system:backlog:edit')")
// @Log(title = "项目工作待办", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessBacklog businessBacklog)
{
return toAjax(businessBacklogService.updateBusinessBacklog(businessBacklog));
}
// /**
// * 导出项目工作待办列表
// */
// @PreAuthorize("@ss.hasPermi('system:backlog:export')")
// @Log(title = "项目工作待办", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessBacklog businessBacklog)
// {
// List<BusinessBacklog> list = businessBacklogService.selectBusinessBacklogList(businessBacklog);
// ExcelUtil<BusinessBacklog> util = new ExcelUtil<BusinessBacklog>(BusinessBacklog.class);
// util.exportExcel(response, list, "项目工作待办数据");
// }
// /**
// * 获取项目工作待办详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:backlog:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Long id)
// {
// return success(businessBacklogService.selectBusinessBacklogById(id));
// }
// /**
// * 删除项目工作待办
// */
// @PreAuthorize("@ss.hasPermi('system:backlog:remove')")
// @Log(title = "项目工作待办", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessBacklogService.deleteBusinessBacklogByIds(ids));
// }
}
package com.dsk.web.controller.business;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.dsk.common.core.domain.entity.BusinessContacts;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.system.service.IBusinessContactsService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.core.page.TableDataInfo;
/**
* 项目联系人Controller
*
* @author lxl
* @date 2023-05-17
*/
@RestController
@RequestMapping("/business/contacts")
public class BusinessContactsController extends BaseController
{
@Autowired
private IBusinessContactsService businessContactsService;
/**
* 分页查询项目联系人列表
*/
// @PreAuthorize("@ss.hasPermi('system:contacts:list')")
@GetMapping("/list")
public TableDataInfo list(BusinessContacts businessContacts)
{
startPage();
List<BusinessContacts> list = businessContactsService.selectBusinessContactsList(businessContacts);
return getDataTable(list);
}
/**
* 新增项目联系人
*/
// @PreAuthorize("@ss.hasPermi('system:contacts:add')")
// @Log(title = "项目联系人", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody BusinessContacts businessContacts)
{
return toAjax(businessContactsService.insertBusinessContacts(businessContacts));
}
/**
* 修改项目联系人
*/
// @PreAuthorize("@ss.hasPermi('system:contacts:edit')")
// @Log(title = "项目联系人", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessContacts businessContacts)
{
return toAjax(businessContactsService.updateBusinessContacts(businessContacts));
}
// /**
// * 导出项目联系人列表
// */
// @PreAuthorize("@ss.hasPermi('system:contacts:export')")
// @Log(title = "项目联系人", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessContacts businessContacts)
// {
// List<BusinessContacts> list = businessContactsService.selectBusinessContactsList(businessContacts);
// ExcelUtil<BusinessContacts> util = new ExcelUtil<BusinessContacts>(BusinessContacts.class);
// util.exportExcel(response, list, "项目联系人数据");
// }
// /**
// * 获取项目联系人详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:contacts:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Long id)
// {
// return success(businessContactsService.selectBusinessContactsById(id));
// }
// /**
// * 删除项目联系人
// */
// @PreAuthorize("@ss.hasPermi('system:contacts:remove')")
// @Log(title = "项目联系人", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessContactsService.deleteBusinessContactsByIds(ids));
// }
}
package com.dsk.web.controller.business;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.system.service.IBusinessFollowRecordService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.common.core.page.TableDataInfo;
/**
* 项目跟进记录Controller
*
* @author lxl
* @date 2023-05-17
*/
@RestController
@RequestMapping("/business/record")
public class BusinessFollowRecordController extends BaseController
{
@Autowired
private IBusinessFollowRecordService businessFollowRecordService;
/**
* 根据项目id查询项目跟进记录
*/
// @PreAuthorize("@ss.hasPermi('system:record:list')")
@GetMapping("/list/{businessId}")
public AjaxResult list(@PathVariable Integer businessId)
{
return success(businessFollowRecordService.selectBusinessFollowRecordList(businessId));
}
/**
* 新增项目跟进记录
*/
// @PreAuthorize("@ss.hasPermi('system:record:add')")
// @Log(title = "项目跟进记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody BusinessFollowRecord businessFollowRecord)
{
return toAjax(businessFollowRecordService.insertBusinessFollowRecord(businessFollowRecord));
}
/**
* 分页查询项目跟进记录
*/
// @PreAuthorize("@ss.hasPermi('system:record:list')")
// @GetMapping("/list")
// public TableDataInfo list(BusinessFollowRecord businessFollowRecord)
// {
// startPage();
// List<BusinessFollowRecord> list = businessFollowRecordService.selectBusinessFollowRecordList(businessFollowRecord);
// return getDataTable(list);
// }
// /**
// * 导出项目跟进记录列表
// */
// @PreAuthorize("@ss.hasPermi('system:record:export')")
// @Log(title = "项目跟进记录", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessFollowRecord businessFollowRecord)
// {
// List<BusinessFollowRecord> list = businessFollowRecordService.selectBusinessFollowRecordList(businessFollowRecord);
// ExcelUtil<BusinessFollowRecord> util = new ExcelUtil<BusinessFollowRecord>(BusinessFollowRecord.class);
// util.exportExcel(response, list, "项目跟进记录数据");
// }
// /**
// * 获取项目跟进记录详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:record:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Long id)
// {
// return success(businessFollowRecordService.selectBusinessFollowRecordById(id));
// }
// /**
// * 修改项目跟进记录
// */
// @PreAuthorize("@ss.hasPermi('system:record:edit')")
// @Log(title = "项目跟进记录", businessType = BusinessType.UPDATE)
// @PutMapping
// public AjaxResult edit(@RequestBody BusinessFollowRecord businessFollowRecord)
// {
// return toAjax(businessFollowRecordService.updateBusinessFollowRecord(businessFollowRecord));
// }
// /**
// * 删除项目跟进记录
// */
// @PreAuthorize("@ss.hasPermi('system:record:remove')")
// @Log(title = "项目跟进记录", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessFollowRecordService.deleteBusinessFollowRecordByIds(ids));
// }
}
package com.dsk.web.controller.business;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessInfo;
import com.dsk.common.dtos.BusinessInfoDto;
import com.dsk.system.domain.BusinessAddDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessBrowseVo;
import com.dsk.system.domain.vo.BusinessListVo;
import com.dsk.system.service.IBusinessInfoService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.core.page.TableDataInfo;
/**
* 项目详情Controller
*
* @author lxl
* @date 2023-05-17
*/
@RestController
@RequestMapping("/business/info")
public class BusinessInfoController extends BaseController
{
@Autowired
private IBusinessInfoService businessInfoService;
/**
* 查询所有项目名称(支持模糊查询)
*/
// @PreAuthorize("@ss.hasPermi('system:info:list')")
@PostMapping("/query/project")
public AjaxResult queryprojectName(@RequestBody BusinessListDto dto){
return AjaxResult.success(businessInfoService.selectProjectName(dto));
}
/**
* 查询项目列表
*/
// @PreAuthorize("@ss.hasPermi('system:info:list')")
@GetMapping("/list")
public TableDataInfo list(@RequestBody BusinessListDto dto)
{
startPage();
List<BusinessListVo> list = businessInfoService.selectBusinessInfoList(dto);
return getDataTable(list);
}
/**
* 查询项目速览
*/
// @PreAuthorize("@ss.hasPermi('system:info:list')")
@GetMapping("/browse/{businessId}")
public AjaxResult browse(@PathVariable Integer id)
{
return success(businessInfoService.browse(id));
}
/**
* 获取项目建设内容
*/
// @PreAuthorize("@ss.hasPermi('system:info:query')")
@GetMapping(value = "/construction/{id}")
public AjaxResult getConstruction(@PathVariable("id") Integer id)
{
return success(businessInfoService.getConstruction(id));
}
/**
* 删除项目列表
*/
// @PreAuthorize("@ss.hasPermi('system:info:remove')")
// @Log(title = "项目详情", businessType = BusinessType.DELETE)
@DeleteMapping("/remove/{ids}")
public AjaxResult remove(@PathVariable(value = "ids",required=false) Long[] ids)
{
return toAjax(businessInfoService.deleteBusinessInfoByIds(ids));
}
/**
* 新增项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:info:add')")
// @Log(title = "项目详情", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody BusinessAddDto dto)
{
return businessInfoService.insertBusinessInfo(dto);
}
/**
* 修改项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:info:edit')")
// @Log(title = "项目详情", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessInfo businessInfo)
{
return toAjax(businessInfoService.updateBusinessInfo(businessInfo));
}
// /**
// * 获取项目详情详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:info:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Integer id)
// {
// return success(businessInfoService.selectBusinessInfoById(id));
// }
// /**
// * 导出项目详情列表
// */
// @PreAuthorize("@ss.hasPermi('system:info:export')")
// @Log(title = "项目详情", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessInfo businessInfo)
// {
// List<BusinessInfo> list = businessInfoService.selectBusinessInfoList(businessInfo);
// ExcelUtil<BusinessInfo> util = new ExcelUtil<BusinessInfo>(BusinessInfo.class);
// util.exportExcel(response, list, "项目详情数据");
// }
}
package com.dsk.web.controller.business;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.service.IBusinessLabelService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.core.page.TableDataInfo;
/**
* 项目标签Controller
*
* @author lxl
* @date 2023-05-17
*/
@RestController
@RequestMapping("/business/label")
public class BusinessLabelController extends BaseController
{
@Autowired
private IBusinessLabelService businessLabelService;
/**
* 新增项目标签
*/
// @PreAuthorize("@ss.hasPermi('system:label:add')")
// @Log(title = "项目标签", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody BusinessLabel businessLabel)
{
return toAjax(businessLabelService.insertBusinessLabel(businessLabel));
}
/**
* 删除项目标签
*/
// @PreAuthorize("@ss.hasPermi('system:label:remove')")
// @Log(title = "项目标签", businessType = BusinessType.DELETE)
@PostMapping("/remove")
public AjaxResult remove(@RequestBody BusinessIdDto dto)
{
return toAjax(businessLabelService.deleteBusinessLabelById(dto));
}
// /**
// * 删除项目标签
// */
// @PreAuthorize("@ss.hasPermi('system:label:remove')")
// @Log(title = "项目标签", businessType = BusinessType.DELETE)
// @DeleteMapping("/remove/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessLabelService.deleteBusinessLabelByIds(ids));
// }
// /**
// * 查询项目标签列表
// */
// @PreAuthorize("@ss.hasPermi('system:label:list')")
// @GetMapping("/list")
// public TableDataInfo list(BusinessLabel businessLabel)
// {
// startPage();
// List<BusinessLabel> list = businessLabelService.selectBusinessLabelList(businessLabel);
// return getDataTable(list);
// }
// /**
// * 导出项目标签列表
// */
// @PreAuthorize("@ss.hasPermi('system:label:export')")
// @Log(title = "项目标签", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessLabel businessLabel)
// {
// List<BusinessLabel> list = businessLabelService.selectBusinessLabelList(businessLabel);
// ExcelUtil<BusinessLabel> util = new ExcelUtil<BusinessLabel>(BusinessLabel.class);
// util.exportExcel(response, list, "项目标签数据");
// }
// /**
// * 获取项目标签详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:label:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Long id)
// {
// return success(businessLabelService.selectBusinessLabelById(id));
// }
// /**
// * 修改项目标签
// */
// @PreAuthorize("@ss.hasPermi('system:label:edit')")
// @Log(title = "项目标签", businessType = BusinessType.UPDATE)
// @PutMapping
// public AjaxResult edit(@RequestBody BusinessLabel businessLabel)
// {
// return toAjax(businessLabelService.updateBusinessLabel(businessLabel));
// }
}
package com.dsk.web.controller.business;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.service.IBusinessRelateCompanyService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.core.page.TableDataInfo;
/**
* 项目关联单位Controller
*
* @author lxl
* @date 2023-05-17
*/
@RestController
@RequestMapping("/business/company")
public class BusinessRelateCompanyController extends BaseController
{
@Autowired
private IBusinessRelateCompanyService businessRelateCompanyService;
/**
* 查询关联单位角色
*/
@PostMapping("/role/list")
public AjaxResult companyRoleList(@RequestBody BusinessIdDto dto){
return success(businessRelateCompanyService.companyRoleList(dto));
}
/**
* 查询项目关联单位列表
*/
// @PreAuthorize("@ss.hasPermi('system:company:list')")
@GetMapping("/list")
public TableDataInfo list(BusinessRelateCompany businessRelateCompany)
{
startPage();
List<BusinessRelateCompany> list = businessRelateCompanyService.selectBusinessRelateCompanyList(businessRelateCompany);
return getDataTable(list);
}
/**
* 新增项目关联单位
*/
// @PreAuthorize("@ss.hasPermi('system:company:add')")
// @Log(title = "项目关联单位", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody BusinessRelateCompany businessRelateCompany)
{
return toAjax(businessRelateCompanyService.insertBusinessRelateCompany(businessRelateCompany));
}
/**
* 修改项目关联单位
*/
// @PreAuthorize("@ss.hasPermi('system:company:edit')")
// @Log(title = "项目关联单位", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessRelateCompany businessRelateCompany)
{
return toAjax(businessRelateCompanyService.updateBusinessRelateCompany(businessRelateCompany));
}
// /**
// * 导出项目关联单位列表
// */
// @PreAuthorize("@ss.hasPermi('system:company:export')")
// @Log(title = "项目关联单位", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessRelateCompany businessRelateCompany)
// {
// List<BusinessRelateCompany> list = businessRelateCompanyService.selectBusinessRelateCompanyList(businessRelateCompany);
// ExcelUtil<BusinessRelateCompany> util = new ExcelUtil<BusinessRelateCompany>(BusinessRelateCompany.class);
// util.exportExcel(response, list, "项目关联单位数据");
// }
// /**
// * 获取项目关联单位详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:company:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Long id)
// {
// return success(businessRelateCompanyService.selectBusinessRelateCompanyById(id));
// }
//
// /**
// * 删除项目关联单位
// */
// @PreAuthorize("@ss.hasPermi('system:company:remove')")
// @Log(title = "项目关联单位", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessRelateCompanyService.deleteBusinessRelateCompanyByIds(ids));
// }
}
package com.dsk.web.controller.customer;
import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.SysRole;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.PageUtils;
import com.dsk.common.enums.BusinessType;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.service.ICustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 客户相关
......@@ -30,7 +38,7 @@ public class CustomerController extends BaseController {
*/
@PreAuthorize("@ss.hasPermi('customer:list')")
@GetMapping("/list")
public TableDataInfo selectPageList(CustomerSearchDto dto){
public TableDataInfo selectPageList(CustomerSearchDto dto) {
startPage();
return getDataTable(baseService.selectList(dto));
}
......@@ -40,7 +48,7 @@ public class CustomerController extends BaseController {
*/
@PreAuthorize("@ss.hasPermi('customer:info')")
@GetMapping("/{customerId}")
public AjaxResult info(@PathVariable("customerId") String customerId){
public AjaxResult info(@PathVariable("customerId") String customerId) {
return AjaxResult.success(baseService.info(customerId));
}
......@@ -50,7 +58,7 @@ public class CustomerController extends BaseController {
@PreAuthorize("@ss.hasPermi('customer:add')")
@PostMapping()
@RepeatSubmit
public AjaxResult add(@RequestBody Customer customer){
public AjaxResult add(@RequestBody Customer customer) {
return AjaxResult.success(baseService.add(customer));
}
......@@ -60,17 +68,32 @@ public class CustomerController extends BaseController {
@PreAuthorize("@ss.hasPermi('customer:edit')")
@PutMapping()
@RepeatSubmit
public AjaxResult edit(@RequestBody Customer customer){
public AjaxResult edit(@RequestBody Customer customer) {
return AjaxResult.success(baseService.edit(customer));
}
/**
* 获取个人客户列表
*/
@PreAuthorize("@ss.hasPermi('customer:user:list')")
@GetMapping("/user/list")
public AjaxResult selectUserList(){
public AjaxResult userList() {
return AjaxResult.success(baseService.selectUserList());
}
/**
* 获取客户项目(合作情况)列表
*/
// @PreAuthorize("@ss.hasPermi('customer:business:list')")
@GetMapping("/business/list")
public TableDataInfo businessList(CustomerBusinessSearchDto dto) {
startPage();
return getDataTable(baseService.selectBusinessList(dto));
}
@Log(title = "客户数据导入", businessType = BusinessType.IMPORT)
//@PreAuthorize("@ss.hasPermi('customer:importData')")
@PostMapping("/importData")
public AjaxResult importData(@RequestPart("file") MultipartFile file) throws Exception {
return AjaxResult.success(baseService.importData(new ExcelUtil<>(Customer.class).importExcel(file.getInputStream(), 3)));
}
}
......@@ -26,7 +26,7 @@ public class CustomerDecisionChainController extends BaseController {
/**
* 获取客户决策链条列表
*/
@PreAuthorize("@ss.hasPermi('customer:decision:chain:list')")
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:list')")
@GetMapping("/list")
public TableDataInfo selectPageList(CustomerDecisionChainSearchDto dto){
startPage();
......@@ -36,7 +36,7 @@ public class CustomerDecisionChainController extends BaseController {
/**
* 添加客户决策链条
*/
@PreAuthorize("@ss.hasPermi('customer:decision:chain:add')")
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:add')")
@PostMapping()
@RepeatSubmit()
public AjaxResult add(@RequestBody CustomerDecisionChain customerDecisionChain){
......@@ -46,7 +46,7 @@ public class CustomerDecisionChainController extends BaseController {
/**
* 编辑客户决策链条
*/
@PreAuthorize("@ss.hasPermi('customer:decision:chain:edit')")
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:edit')")
@PutMapping()
@RepeatSubmit()
public AjaxResult edit(@RequestBody CustomerDecisionChain customerDecisionChain){
......@@ -56,7 +56,7 @@ public class CustomerDecisionChainController extends BaseController {
/**
* 删除客户决策链条
*/
@PreAuthorize("@ss.hasPermi('customer:decision:chain:del')")
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:del')")
@DeleteMapping("/{id}")
@RepeatSubmit()
public AjaxResult del(@PathVariable("id") Long id){
......
package com.dsk.web.controller.dsk;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseBussinessService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*@Description: 央企经营管理系统企业业务相关
*@Author: zhangyi
*@date: 2023/5/17 9:03
*/
@Slf4j
@RestController
@RequestMapping(value = "/enterpriseBussiness")
public class EnterpriseBussinessController {
@Autowired
EnterpriseBussinessService enterpriseBussinessService;
@ApiOperation(value = "客户信息列表")
@RequestMapping(value = "/clientPage", method = RequestMethod.POST)
public TableDataInfo clientPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.clientPage(paramMap);
}
@ApiOperation(value = "客户项目列表")
@RequestMapping(value = "/clientProjectPage", method = RequestMethod.POST)
public TableDataInfo clientProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.clientProjectPage(paramMap);
}
@ApiOperation(value = "投标记录列表(开标记录)")
@RequestMapping(value = "/tenderPage",method = RequestMethod.POST)
public TableDataInfo tenderPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.tenderPage(paramMap);
}
@ApiOperation(value = "投标记录详情(开标记录)")
@RequestMapping(value = "/tenderDetail",method = RequestMethod.POST)
public R tenderDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.tenderDetail(paramMap);
}
@ApiOperation(value = "供应商列表")
@RequestMapping(value = "/supplierPage",method = RequestMethod.POST)
public TableDataInfo supplierPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.supplierPage(paramMap);
}
@ApiOperation(value = "供应商项目列表")
@RequestMapping(value = "/supplierProjectPage",method = RequestMethod.POST)
public TableDataInfo supplierProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.supplierProjectPage(paramMap);
}
@ApiOperation(value = "中标项目详情")
@RequestMapping(value = "/projectDetail", method = RequestMethod.POST)
public R projectDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.projectDetail(paramMap);
}
@ApiOperation(value = "招标代理常合作代理机构列表")
@RequestMapping(value = "/oftenAgencyPage",method = RequestMethod.POST)
public TableDataInfo oftenAgencyPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.oftenAgencyPage(paramMap);
}
@ApiOperation(value = "招标合作明细列表")
@RequestMapping(value = "/bidCooperatePage", method = RequestMethod.POST)
public TableDataInfo bidCooperatePage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.bidCooperatePage(paramMap);
}
@ApiOperation(value = "历史发包列表")
@RequestMapping(value = "/historySendPage", method = RequestMethod.POST)
public TableDataInfo historySendPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.historySendPage(paramMap);
}
@ApiOperation(value = "历史发包省份")
@RequestMapping(value = "/historySendProvince", method = RequestMethod.POST)
public R historySendProvince(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseBussinessService.historySendProvince(paramMap);
}
}
......@@ -2,6 +2,7 @@ package com.dsk.web.controller.dsk;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -28,8 +29,7 @@ public class EnterpriseController {
@ApiOperation(value = "企业详情头部信息(建设库)")
@PostMapping("/infoHeader")
public R infoHeader(@RequestBody @Valid EnterpriseInfoHeaderBody body) throws Exception
{
public R infoHeader(@RequestBody @Valid EnterpriseInfoHeaderBody body) throws Exception {
return enterpriseService.infoHeader(body);
}
......@@ -59,19 +59,19 @@ public class EnterpriseController {
@ApiOperation(value = "股东列表(openApi)")
@PostMapping(value = "partners")
public R partners(@RequestBody @Valid EnterprisePartnersBody vo) throws Exception {
public TableDataInfo partners(@RequestBody @Valid EnterprisePartnersBody vo) throws Exception {
return enterpriseService.partners(vo);
}
@ApiOperation(value = "对外投资列表(openApi)")
@PostMapping(value = "investment")
public R investment(@RequestBody @Valid EnterpriseInvestmentBody vo) throws Exception {
public TableDataInfo investment(@RequestBody @Valid EnterpriseInvestmentBody vo) throws Exception {
return enterpriseService.investment(vo);
}
@ApiOperation(value = "分支机构列表(openApi)")
@PostMapping(value = "affiliates")
public R affiliates(@RequestBody @Valid EnterpriseAffiliatesBody vo) throws Exception {
public TableDataInfo affiliates(@RequestBody @Valid EnterpriseAffiliatesBody vo) throws Exception {
return enterpriseService.affiliates(vo);
}
......@@ -101,7 +101,7 @@ public class EnterpriseController {
@ApiOperation(value = "企业动态列表(建设库)")
@PostMapping(value = "dynamicPage")
public R dynamicPage(@RequestBody @Valid EnterpriseDynamicPageBody vo) throws Exception {
public TableDataInfo dynamicPage(@RequestBody @Valid EnterpriseDynamicPageBody vo) throws Exception {
return enterpriseService.dynamicPage(vo);
}
......@@ -113,19 +113,19 @@ public class EnterpriseController {
@ApiOperation(value = "工商变更信息列表(openApi)")
@PostMapping(value = "changeInfo")
public R changeInfo(@RequestBody @Valid EnterpriseChangeInfoBody vo) throws Exception {
public TableDataInfo changeInfo(@RequestBody @Valid EnterpriseChangeInfoBody vo) throws Exception {
return enterpriseService.changeInfo(vo);
}
@ApiOperation(value = "高管信息列表(openApi)")
@PostMapping(value = "keymembers")
public R keymembers(@RequestBody @Valid EnterpriseKeymembersBody vo) throws Exception {
public TableDataInfo keymembers(@RequestBody @Valid EnterpriseKeymembersBody vo) throws Exception {
return enterpriseService.keymembers(vo);
}
@ApiOperation(value = "工商股东信息(openApi)")
@PostMapping(value = "bestStockPage")
public R bestStockPage(@RequestBody @Valid EnterpriseKeymembersBody vo) throws Exception {
public TableDataInfo bestStockPage(@RequestBody @Valid EnterpriseKeymembersBody vo) throws Exception {
return enterpriseService.bestStockPage(vo);
}
......
package com.dsk.web.controller.dsk;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseCreditService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
*@Description: 央企经营管理系统企业风险相关
*@Author: zhangyi
*@date: 2023/5/17 9:03
*/
@Slf4j
@RestController
@RequestMapping(value = "/enterpriseCredit")
public class EnterpriseCreditController {
@Autowired
EnterpriseCreditService enterpriseCreditService;
@RequestMapping(value = "/penalizePage", method = RequestMethod.POST)
@ApiOperation(value = "行政处罚列表")
public TableDataInfo penalizePage(@RequestBody @Valid EnterpriseCreditPenalizePageBody body) throws Exception {
return enterpriseCreditService.penalizePage(body);
}
@RequestMapping(value = "/penalizeReasonType", method = RequestMethod.POST)
@ApiOperation(value = "行政处罚类型")
public R penalizeReasonType(@RequestBody @Valid EnterpriseCreditPenalizeReasonTypeBody body) throws Exception {
return enterpriseCreditService.penalizeReasonType(body);
}
@RequestMapping(value = "/abnormalPage", method = RequestMethod.POST)
@ApiOperation(value = "经营异常列表")
public TableDataInfo abnormalPage(@RequestBody @Valid EnterpriseCreditAbnormalPageBody body) throws Exception {
return enterpriseCreditService.abnormalPage(body);
}
@RequestMapping(value = "/abnormalYears", method = RequestMethod.POST)
@ApiOperation(value = "经营异常年份")
public R abnormalYears(@RequestBody @Valid EnterpriseCreditAbnormalYearsBody body) throws Exception {
return enterpriseCreditService.abnormalYears(body);
}
@RequestMapping(value = "/executedPersonsPage", method = RequestMethod.POST)
@ApiOperation(value = "被执行人列表")
public TableDataInfo executedPersonsPage(@RequestBody @Valid EnterpriseCreditExecutedPersonsPageBody body) throws Exception {
return enterpriseCreditService.executedPersonsPage(body);
}
@RequestMapping(value = "/executedPage", method = RequestMethod.POST)
@ApiOperation(value = "失信被执行人列表")
public TableDataInfo executedPage(@RequestBody @Valid EnterpriseCreditExecutedPageBody body) throws Exception {
return enterpriseCreditService.executedPage(body);
}
@RequestMapping(value = "/lawsuitsPage", method = RequestMethod.POST)
@ApiOperation(value = "裁判文书列表")
public TableDataInfo lawsuitsPage(@RequestBody @Valid EnterpriseCreditLawsuitsPageBody body) throws Exception {
return enterpriseCreditService.lawsuitsPage(body);
}
@RequestMapping(value = "/lawsuitsCauseAction", method = RequestMethod.POST)
@ApiOperation(value = "裁判文书案由")
public R lawsuitsCauseAction(@RequestBody @Valid EnterpriseCreditLawsuitsCauseActionBody body) throws Exception {
return enterpriseCreditService.lawsuitsCauseAction(body);
}
@RequestMapping(value = "/lawsuitsRole", method = RequestMethod.POST)
@ApiOperation(value = "裁判文书身份")
public R lawsuitsRole(@RequestBody @Valid EnterpriseCreditLawsuitsRoleBody body) throws Exception {
return enterpriseCreditService.lawsuitsRole(body);
}
@RequestMapping(value = "/noticesPage", method = RequestMethod.POST)
@ApiOperation(value = "法院公告列表")
public TableDataInfo noticesPage(@RequestBody @Valid EnterpriseCreditNoticePageBody body) throws Exception {
return enterpriseCreditService.noticesPage(body);
}
@RequestMapping(value = "/noticesType", method = RequestMethod.POST)
@ApiOperation(value = "法院公告类型")
public R noticesType(@RequestBody @Valid EnterpriseCreditNoticeTypeBody body) throws Exception {
return enterpriseCreditService.noticesType(body);
}
@RequestMapping(value = "/noticesRole", method = RequestMethod.POST)
@ApiOperation(value = "法院公告身份")
public R noticesRole(@RequestBody @Valid EnterpriseCreditNoticeRoleBody body) throws Exception {
return enterpriseCreditService.noticesRole(body);
}
@RequestMapping(value = "/noticesCaseReason", method = RequestMethod.POST)
@ApiOperation(value = "法院公告案由")
public R noticesCaseReason(@RequestBody @Valid EnterpriseCreditNoticeCaseReasonBody body) throws Exception {
return enterpriseCreditService.noticesCaseReason(body);
}
@RequestMapping(value = "/kaitingPage", method = RequestMethod.POST)
@ApiOperation(value = "开庭公告列表")
public TableDataInfo kaitingPage(@RequestBody @Valid EnterpriseCreditKaitingPageBody body) throws Exception {
return enterpriseCreditService.kaitingPage(body);
}
@RequestMapping(value = "/kaitingCauseAction", method = RequestMethod.POST)
@ApiOperation(value = "开庭公告案由")
public R kaitingCauseAction(@RequestBody @Valid EnterpriseCreditKaitingCauseActionBody body) throws Exception {
return enterpriseCreditService.kaitingCauseAction(body);
}
@RequestMapping(value = "/kaitingPureRole", method = RequestMethod.POST)
@ApiOperation(value = "开庭公告当事人身份")
public R kaitingPureRole(@RequestBody @Valid EnterpriseCreditKaitingPureRoleBody body) throws Exception {
return enterpriseCreditService.kaitingPureRole(body);
}
}
package com.dsk.web.controller.dsk;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseProjectService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*@Description: 央企经营管理系统企业项目相关
*@Author: zhangyi
*@date: 2023/5/17 9:03
*/
@Slf4j
@RestController
@RequestMapping(value = "/enterpriseProject")
public class EnterpriseProjectController {
@Autowired
EnterpriseProjectService enterpriseProjectService;
@ApiOperation(value = "土地交易员列表")
@RequestMapping(value = "/landTransactionPage", method = RequestMethod.POST)
public TableDataInfo landTransactionPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.landTransactionPage(paramMap);
}
@ApiOperation(value = "土地用途列表")
@RequestMapping(value = "/landUse", method = RequestMethod.POST)
public R landUse(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.landUse(paramMap);
}
@ApiOperation(value = "土地信息详情")
@RequestMapping(value = "/landDetail",method = RequestMethod.POST)
public R landDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.landDetail(paramMap);
}
@ApiOperation(value = "拟建项目列表")
@RequestMapping(value = "/approvalProjectPage",method = RequestMethod.POST)
public TableDataInfo approvalProjectPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.approvalProjectPage(paramMap);
}
@ApiOperation(value = "拟建项目详情基本信息")
@RequestMapping(value = "/approvalInfoDetail",method = RequestMethod.POST)
public R approvalInfoDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.approvalInfoDetail(paramMap);
}
@ApiOperation(value = "拟建项目详情立项审批列表")
@RequestMapping(value = "/approvalExaminePage",method = RequestMethod.POST)
public TableDataInfo approvalExaminePage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.approvalExaminePage(paramMap);
}
@ApiOperation(value = "拟建项目详情民间推介列表")
@RequestMapping(value = "/approvalMarketingPage", method = RequestMethod.POST)
public TableDataInfo approvalMarketingPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.approvalMarketingPage(paramMap);
}
@ApiOperation(value = "专项债项目列表")
@RequestMapping(value = "/specialDebtPage", method = RequestMethod.POST)
public TableDataInfo specialDebtPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.specialDebtPage(paramMap);
}
@ApiOperation(value = "专项债项目详情")
@RequestMapping(value = "/specialDebtDetail", method = RequestMethod.POST)
public R specialDebtDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.specialDebtDetail(paramMap);
}
@ApiOperation(value = "招标公告列表")
@RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST)
public TableDataInfo bidNoticePage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidNoticePage(paramMap);
}
@ApiOperation(value = "招标公告招标类别")
@RequestMapping(value = "/bidNoticeTenderStage", method = RequestMethod.POST)
public R bidNoticeTenderStage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidNoticeTenderStage(paramMap);
}
@ApiOperation(value = "招标公告招标地区")
@RequestMapping(value = "/bidNoticeProvince", method = RequestMethod.POST)
public R bidNoticeProvince(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidNoticeProvince(paramMap);
}
@ApiOperation(value = "招标公告详情")
@RequestMapping(value = "/bidNoticeDetail", method = RequestMethod.POST)
public R bidNoticeDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidNoticeDetail(paramMap);
}
@ApiOperation(value = "招标计划列表")
@RequestMapping(value = "/bidPlanPage",method = RequestMethod.POST)
public TableDataInfo bidPlanPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidPlanPage(paramMap);
}
@ApiOperation(value = "招标计划详情")
@RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST)
public R bidPlanDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidPlanDetail(paramMap);
}
@ApiOperation(value = "标讯pro招标公告列表")
@RequestMapping(value = "/bidNoticeProPage", method = RequestMethod.POST)
public TableDataInfo bidNoticeProPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidNoticeProPage(paramMap);
}
@ApiOperation(value = "标讯pro招标公告详情")
@RequestMapping(value = "/bidNoticeProDetail", method = RequestMethod.POST)
public R bidNoticeProDetail(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.bidNoticeProDetail(paramMap);
}
@ApiOperation(value = "行政许可列表")
@RequestMapping(value = "/creditXzxkPage", method = RequestMethod.POST)
public TableDataInfo creditXzxkPage(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseProjectService.creditXzxkPage(paramMap);
}
}
package com.dsk.web.controller.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 商机雷达 查询接口
* @author Administrator
*
*/
@RequestMapping("/radar")
@RestController
public class BusinessOpportunityRadarController {
@Resource
BusinessOpportunityRadarService opportunityRadarService;
/*
* 土地交易
*/
@RequestMapping("/landMarketPage")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.landMarketPage(compose);
}
/*
* 拟建项目
*/
@RequestMapping("/establishmentPage")
public AjaxResult establishmentPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.establishmentPage(compose);
}
/*
* 开标记录
*/
@RequestMapping("/jskBidTenderPage")
public AjaxResult jskBidTenderPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidTenderPage(compose);
}
/*
* 标讯pro
*/
@RequestMapping("/jskBidNewsPage")
public AjaxResult jskBidNewsPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidNewsPage(compose);
}
}
package com.dsk.web.controller.search.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 查企业
* @author Administrator
*
*/
@RequestMapping("/enterprise")
@RestController
public class CompanySearchController {
@Resource
BusinessOpportunityRadarService opportunityRadarService;
/*
* 模糊查询企业名称
*/
@RequestMapping("/index")
public AjaxResult landMarketPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterprisePage(compose);
}
/*
* 完全匹配企业名称
*/
@RequestMapping("/findByName")
public AjaxResult findByName(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.enterpriseByName(compose);
}
}
package com.dsk.web.controller.search;
package com.dsk.web.controller.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.web.controller.search.service.MarketAnalysisService;
......@@ -51,6 +52,32 @@ public class MarketAnalysisController {
return marketAnalysisService.certGroupByMajorProvinceLevel();
}
/*
* 产业结构-按年份选择 各个项目类型项目总数
*/
@RequestMapping("/bidGroupCountByProjectType")
public AjaxResult bidGroupCountByProjectType(@RequestBody JSONObject object) {
return marketAnalysisService.bidGroupCountByProjectType(object);
}
/*
* 产业结构-近两年各个项目类型项目总数及金额占比
*/
@RequestMapping("/bidMoneyGroupByProjectType")
public AjaxResult bidMoneyGroupByProjectType(@RequestBody JSONObject object) {
return marketAnalysisService.bidMoneyGroupByProjectType(object);
}
/*
* 中标数量按省份分组
*/
......
package com.dsk.web.controller.search.service;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
/**
* @Author liujie
* @ClassName MarketAnalysisService
* @Date 2023/5/15 16:39
**/
public interface BusinessOpportunityRadarService {
AjaxResult jskBidNewsPage(ComposeQueryDto compose);
AjaxResult jskBidTenderPage(ComposeQueryDto compose);
AjaxResult landMarketPage(ComposeQueryDto compose);
AjaxResult establishmentPage(ComposeQueryDto compose);
AjaxResult enterprisePage(ComposeQueryDto compose);
AjaxResult enterpriseByName(ComposeQueryDto compose);
}
package com.dsk.web.controller.search.service;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
......@@ -19,4 +20,8 @@ public interface MarketAnalysisService {
AjaxResult countGroupByProvince(ComposeQueryDto compose);
AjaxResult countGroupByMonth(ComposeQueryDto compose);
AjaxResult bidMoneyGroupByProjectType(JSONObject object);
AjaxResult bidGroupCountByProjectType(JSONObject object);
}
package com.dsk.web.controller.search.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityRadarService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult jskBidNewsPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/jskBid/news/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidTenderPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/jskBidTender/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult establishmentPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/establishment/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult landMarketPage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/landMarket/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterprisePage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/enterprice/index", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterpriseByName(ComposeQueryDto compose){
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/enterprice/findByName", BeanUtil.beanToMap(compose, false, false));
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.web.controller.search.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R;
import com.dsk.common.dtos.ComposeQueryDto;
......@@ -24,33 +25,45 @@ public class MarketAnalysisServiceImpl implements MarketAnalysisService {
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult areaGroupByProvince() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/marketAnalysis/areaGroupByProvince", null);
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/areaGroupByProvince", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult certGroupByMajorAndLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/marketAnalysis/certGroupByMajorAndLevel", null);
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/certGroupByMajorAndLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult certGroupByMajorProvinceLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/marketAnalysis/certGroupByMajorProvinceLevel", null);
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/certGroupByMajorProvinceLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bidMoneyGroupByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/bidMoneyGroupByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bidGroupCountByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/bidGroupCountByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult countGroupByProvince(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/marketAnalysis/countGroupByProvince", BeanUtil.beanToMap(compose, false, false));
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/countGroupByProvince", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult countGroupByMonth(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/marketAnalysis/countGroupByDate", BeanUtil.beanToMap(compose, false, false));
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/nationzj/marketAnalysis/countGroupByDate", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.common.core.domain.entity;
import java.util.Date;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 项目工作待办对象 business_backlog
*
* @author lxl
* @date 2023-05-17
*/
public class BusinessBacklog extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id */
@Excel(name = "项目id")
private Integer businessId;
/** 关联客户 */
@Excel(name = "关联客户")
private String target;
/** 待办工作内容 */
@Excel(name = "待办工作内容")
private String task;
/** 完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date finishTime;
/** 状态(2已完成,1进行中,0逾期) */
@Excel(name = "状态(2已完成,1进行中,0逾期)")
private Integer state;
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setBusinessId(Integer businessId)
{
this.businessId = businessId;
}
public Integer getBusinessId()
{
return businessId;
}
public void setTarget(String target)
{
this.target = target;
}
public String getTarget()
{
return target;
}
public void setTask(String task)
{
this.task = task;
}
public String getTask()
{
return task;
}
public void setFinishTime(Date finishTime)
{
this.finishTime = finishTime;
}
public Date getFinishTime()
{
return finishTime;
}
public void setState(Integer state)
{
this.state = state;
}
public Integer getState()
{
return state;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("target", getTarget())
.append("task", getTask())
.append("finishTime", getFinishTime())
.append("state", getState())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.toString();
}
}
package com.dsk.common.core.domain.entity;
import java.util.Date;
import com.dsk.common.core.domain.BaseEntity;
import com.dsk.common.utils.CheckUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Pattern;
/**
* 项目联系人对象 business_contacts
*
* @author lxl
* @date 2023-05-17
*/
public class BusinessContacts extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id */
@Excel(name = "项目id")
private Integer businessId;
/** 姓名 */
@Excel(name = "姓名")
private String name;
/** 角色 */
@Excel(name = "角色")
private String role;
/** 公司/机关 */
@Excel(name = "公司/机关")
private String office;
/** 职位 */
@Excel(name = "职位")
private String position;
/** 联系电话 */
@Excel(name = "联系电话")
private String phone;
/** 维护人员 */
@Excel(name = "维护人员")
private String accendant;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date creatTime;
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setBusinessId(Integer businessId)
{
this.businessId = businessId;
}
public Integer getBusinessId()
{
return businessId;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setRole(String role)
{
this.role = role;
}
public String getRole()
{
return role;
}
public void setOffice(String office)
{
this.office = office;
}
public String getOffice()
{
return office;
}
public void setPosition(String position)
{
this.position = position;
}
public String getPosition()
{
return position;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setAccendant(String accendant)
{
this.accendant = accendant;
}
public String getAccendant()
{
return accendant;
}
public void setCreatTime(Date creatTime)
{
this.creatTime = creatTime;
}
public Date getCreatTime()
{
return creatTime;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("name", getName())
.append("role", getRole())
.append("office", getOffice())
.append("position", getPosition())
.append("phone", getPhone())
.append("accendant", getAccendant())
.append("creatTime", getCreatTime())
.append("updateTime", getUpdateTime())
.toString();
}
}
package com.dsk.common.core.domain.entity;
import java.util.Date;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 项目跟进记录对象 business_follow_record
*
* @author lxl
* @date 2023-05-17
*/
public class BusinessFollowRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id */
@Excel(name = "项目id")
private Integer businessId;
/** 用户id */
@Excel(name = "用户id")
private Integer userId;
/** 用户昵称 */
@Excel(name = "用户昵称")
private Integer userName;
/** 拜访对象 */
@Excel(name = "拜访对象")
private String visitPerson;
/** 职位 */
@Excel(name = "职位")
private String position;
/** 拜访时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "拜访时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date visitTime;
/** 下次拜访时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下次拜访时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date nextVisitTime;
/** 记录内容 */
@Excel(name = "记录内容")
private String recordInfo;
/** 拜访方式 */
@Excel(name = "拜访方式")
private String visitWay;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date creatTime;
public Integer getUserName() {
return userName;
}
public String getVisitPerson() {
return visitPerson;
}
public String getPosition() {
return position;
}
public void setUserName(Integer userName) {
this.userName = userName;
}
public void setVisitPerson(String visitPerson) {
this.visitPerson = visitPerson;
}
public void setPosition(String position) {
this.position = position;
}
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setBusinessId(Integer businessId)
{
this.businessId = businessId;
}
public Integer getBusinessId()
{
return businessId;
}
public void setUserId(Integer userId)
{
this.userId = userId;
}
public Integer getUserId()
{
return userId;
}
public void setVisitTime(Date visitTime)
{
this.visitTime = visitTime;
}
public Date getVisitTime()
{
return visitTime;
}
public void setNextVisitTime(Date nextVisitTime)
{
this.nextVisitTime = nextVisitTime;
}
public Date getNextVisitTime()
{
return nextVisitTime;
}
public void setRecordInfo(String recordInfo)
{
this.recordInfo = recordInfo;
}
public String getRecordInfo()
{
return recordInfo;
}
public void setVisitWay(String visitWay)
{
this.visitWay = visitWay;
}
public String getVisitWay()
{
return visitWay;
}
public void setCreatTime(Date creatTime)
{
this.creatTime = creatTime;
}
public Date getCreatTime()
{
return creatTime;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("userId", getUserId())
.append("userName", getUserName())
.append("visitPerson", getVisitPerson())
.append("position", getPosition())
.append("visitTime", getVisitTime())
.append("nextVisitTime", getNextVisitTime())
.append("recordInfo", getRecordInfo())
.append("visitWay", getVisitWay())
.append("creatTime", getCreatTime())
.append("updateTime", getUpdateTime())
.toString();
}
}
package com.dsk.common.core.domain.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 项目详情对象 business_info
*
* @author lxl
* @date 2023-05-17
*/
public class BusinessInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
private Integer userId;
/** $column.columnComment */
private Integer id;
/** 项目名称 */
@Excel(name = "项目名称")
private String projectName;
/** 总投金额(万元) */
@Excel(name = "总投金额(万元)")
private Double investmentAmount;
/** 资金来源 */
@Excel(name = "资金来源")
private String amountSource;
/** 计划招标时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划招标时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date planBidTime;
/** 计划开工时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划开工时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date planStartTime;
/** 项目级别 */
@Excel(name = "项目级别")
private String projectLevel;
/** 项目阶段 */
@Excel(name = "项目阶段")
private String projectStage;
/** 建设性质 */
@Excel(name = "建设性质")
private String buildProperty;
/** 计划竣工时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划竣工时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date planCompleteTime;
/** 项目概况与建设规模 */
@Excel(name = "项目概况与建设规模")
private String projectDetails;
/** 省 */
@Excel(name = "省")
private String provinceName;
/** 省id */
@Excel(name = "省id")
private Integer provinceId;
/** 市 */
@Excel(name = "市")
private String cityName;
/** 市id */
@Excel(name = "市id")
private Integer cityId;
/** 区 */
@Excel(name = "区")
private String districtName;
/** 区id */
@Excel(name = "区id")
private Integer districtId;
/** 项目类型 */
@Excel(name = "项目类型")
private String projectType;
/** 项目类别 */
@Excel(name = "项目类别")
private String projectCategory;
/** 商务团队 */
@Excel(name = "商务团队")
private String team;
/** 0 仅自己可见,1 他人可见 */
@Excel(name = "0 仅自己可见,1 他人可见")
private Integer isPrivate;
/** 客户id */
@Excel(name = "客户id")
private String customerId;
/** 项目状态 */
@Excel(name = "项目状态")
private Integer status;
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setProjectName(String projectName)
{
this.projectName = projectName;
}
public String getProjectName()
{
return projectName;
}
public void setInvestmentAmount(Double investmentAmount)
{
this.investmentAmount = investmentAmount;
}
public Double getInvestmentAmount()
{
return investmentAmount;
}
public void setAmountSource(String amountSource)
{
this.amountSource = amountSource;
}
public String getAmountSource()
{
return amountSource;
}
public void setPlanBidTime(Date planBidTime)
{
this.planBidTime = planBidTime;
}
public Date getPlanBidTime()
{
return planBidTime;
}
public void setPlanStartTime(Date planStartTime)
{
this.planStartTime = planStartTime;
}
public Date getPlanStartTime()
{
return planStartTime;
}
public void setProjectLevel(String projectLevel)
{
this.projectLevel = projectLevel;
}
public String getProjectLevel()
{
return projectLevel;
}
public void setProjectStage(String projectStage)
{
this.projectStage = projectStage;
}
public String getProjectStage()
{
return projectStage;
}
public void setBuildProperty(String buildProperty)
{
this.buildProperty = buildProperty;
}
public String getBuildProperty()
{
return buildProperty;
}
public void setPlanCompleteTime(Date planCompleteTime)
{
this.planCompleteTime = planCompleteTime;
}
public Date getPlanCompleteTime()
{
return planCompleteTime;
}
public void setProjectDetails(String projectDetails)
{
this.projectDetails = projectDetails;
}
public String getProjectDetails()
{
return projectDetails;
}
public void setProvinceName(String provinceName)
{
this.provinceName = provinceName;
}
public String getProvinceName()
{
return provinceName;
}
public void setProvinceId(Integer provinceId)
{
this.provinceId = provinceId;
}
public Integer getProvinceId()
{
return provinceId;
}
public void setCityName(String cityName)
{
this.cityName = cityName;
}
public String getCityName()
{
return cityName;
}
public void setCityId(Integer cityId)
{
this.cityId = cityId;
}
public Integer getCityId()
{
return cityId;
}
public void setDistrictName(String districtName)
{
this.districtName = districtName;
}
public String getDistrictName()
{
return districtName;
}
public void setDistrictId(Integer districtId)
{
this.districtId = districtId;
}
public Integer getDistrictId()
{
return districtId;
}
public void setProjectType(String projectType)
{
this.projectType = projectType;
}
public String getProjectType()
{
return projectType;
}
public void setProjectCategory(String projectCategory)
{
this.projectCategory = projectCategory;
}
public String getProjectCategory()
{
return projectCategory;
}
public void setTeam(String team)
{
this.team = team;
}
public String getTeam()
{
return team;
}
public void setIsPrivate(Integer isPrivate)
{
this.isPrivate = isPrivate;
}
public Integer getIsPrivate()
{
return isPrivate;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("projectName", getProjectName())
.append("investmentAmount", getInvestmentAmount())
.append("amountSource", getAmountSource())
.append("planBidTime", getPlanBidTime())
.append("planStartTime", getPlanStartTime())
.append("projectLevel", getProjectLevel())
.append("projectStage", getProjectStage())
.append("buildProperty", getBuildProperty())
.append("planCompleteTime", getPlanCompleteTime())
.append("projectDetails", getProjectDetails())
.append("provinceName", getProvinceName())
.append("provinceId", getProvinceId())
.append("cityName", getCityName())
.append("cityId", getCityId())
.append("districtName", getDistrictName())
.append("districtId", getDistrictId())
.append("projectType", getProjectType())
.append("projectCategory", getProjectCategory())
.append("team", getTeam())
.append("isPrivate", getIsPrivate())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("customerId", getCustomerId())
.append("status", getStatus())
.toString();
}
}
package com.dsk.common.core.domain.entity;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 项目标签对象 business_label
*
* @author lxl
* @date 2023-05-17
*/
@Data
@NoArgsConstructor
public class BusinessLabel extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id */
@Excel(name = "项目id")
private Integer businessId;
/** 标签 */
@Excel(name = "标签")
private String label;
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("label", getLabel())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.toString();
}
public BusinessLabel(Integer businessId) {
this.businessId = businessId;
}
}
package com.dsk.common.core.domain.entity;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import com.dsk.common.utils.CheckUtils;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Pattern;
/**
* 项目关联单位对象 business_relate_company
*
* @author lxl
* @date 2023-05-17
*/
@Data
@NoArgsConstructor
public class BusinessRelateCompany extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id */
@Excel(name = "项目id")
private Integer businessId;
/** 单位id */
@Excel(name = "单位id")
private Integer companyId;
/** 单位名称 */
@Excel(name = "单位名称")
private String companyName;
/** 单位角色 */
@Excel(name = "单位角色")
private String companyRole;
/** 负责任人 */
@Excel(name = "负责任人")
private String responsiblePerson;
/** 负责人电话 */
@Excel(name = "负责人电话")
private String phone;
/** 对接深度/竞争力度 */
@Excel(name = "对接深度/竞争力度")
private String depth;
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("companyId", getCompanyId())
.append("companyName", getCompanyName())
.append("companyRole", getCompanyRole())
.append("responsiblePerson", getResponsiblePerson())
.append("phone", getPhone())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("depth", getDepth())
.toString();
}
public BusinessRelateCompany(Integer businessId, Integer companyId, String companyName, String companyRole) {
this.businessId = businessId;
this.companyId = companyId;
this.companyName = companyName;
this.companyRole = companyRole;
}
public BusinessRelateCompany(Integer businessId) {
this.businessId = businessId;
}
}
package com.dsk.common.core.domain.entity;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 项目用户关联对象 business_user
*
* @author lxl
* @date 2023-05-17
*/
public class BusinessUser extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id(business_info表id) */
@Excel(name = "项目id(business_info表id)")
private Integer businessId;
/** 部门id */
@Excel(name = "部门id")
private Integer deptId;
/** 用户id */
@Excel(name = "用户id")
private Integer userId;
/** 是否创建人(1 是,0 否) */
@Excel(name = "是否创建人(1 是,0 否)")
private Integer isFounder;
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setBusinessId(Integer businessId)
{
this.businessId = businessId;
}
public Integer getBusinessId()
{
return businessId;
}
public void setDeptId(Integer deptId)
{
this.deptId = deptId;
}
public Integer getDeptId()
{
return deptId;
}
public void setUserId(Integer userId)
{
this.userId = userId;
}
public Integer getUserId()
{
return userId;
}
public void setIsFounder(Integer isFounder)
{
this.isFounder = isFounder;
}
public Integer getIsFounder()
{
return isFounder;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("deptId",getDeptId() )
.append("userId", getUserId())
.append("isFounder", getIsFounder())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.toString();
}
public BusinessUser(Integer businessId, Integer deptId, Integer userId, Integer isFounder) {
this.businessId = businessId;
this.deptId = deptId;
this.userId = userId;
this.isFounder = isFounder;
}
}
......@@ -9,11 +9,16 @@ package com.dsk.common.core.domain.model;
*/
public class BasePage {
/**
* 当前页码
*/
private Integer pageNum = 1;
/**
* 当前页码
*/
private Integer pageIndex = 1;
/**
* 每页数量
*/
......@@ -22,7 +27,7 @@ public class BasePage {
/**
* 最大页码
*/
private Integer pageMaxIndex;
private Integer pageMaxNum;
/**
* 最大条数
......@@ -31,11 +36,14 @@ public class BasePage {
public Integer getPageIndex() {
return pageMaxIndex != null && pageIndex > pageMaxIndex? pageMaxIndex : pageIndex;
return pageNum;
}
public Integer getPageNum() {
return pageMaxNum != null && pageNum > pageMaxNum? pageMaxNum : pageNum;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
......@@ -46,12 +54,12 @@ public class BasePage {
this.pageSize = pageSize;
}
public Integer getPageMaxIndex() {
return pageMaxIndex;
public Integer getPageMaxNum() {
return pageMaxNum;
}
public void setPageMaxIndex(Integer pageMaxIndex) {
this.pageMaxIndex = pageMaxIndex;
public void setPageMaxNum(Integer pageMaxNum) {
this.pageMaxNum = pageMaxNum;
}
public Integer getPageMaxSize() {
......@@ -62,11 +70,15 @@ public class BasePage {
this.pageMaxSize = pageMaxSize;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageNum;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("BasePageVo [pageIndex=");
builder.append(pageIndex);
builder.append(pageNum);
builder.append(", pageSize=");
builder.append(pageSize);
builder.append("]");
......
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditAbnormalPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 年份列表
*/
private List<String> years;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditAbnormalYearsBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditExecutedPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 开始时间(年月日)
*/
private String dateFrom;
/**
* 截止时间(年月日)
*/
private String dateTo;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditExecutedPersonsPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 开始时间(年月日)
*/
private String dateFrom;
/**
* 截止时间(年月日)
*/
private String dateTo;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditKaitingCauseActionBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditKaitingPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 案由
*/
private String causeAction;
/**
* 身份
*/
private String pureRole;
/**
* 查询关键词
*/
private String keys;
/**
* 开始时间(年月日)
*/
private String dateFrom;
/**
* 截止时间(年月日)
*/
private String dateTo;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditKaitingPureRoleBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditLawsuitsCauseActionBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditLawsuitsPageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 裁判文书案由
*/
private String causeAction;
/**
* 裁判文书身份
*/
private String role;
/**
* 查询关键词
*/
private String keys;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditLawsuitsRoleBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditNoticeCaseReasonBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditNoticePageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 公告类型
*/
private String type;
/**
* 身份
*/
private String role;
/**
* 案由
*/
private String caseReason;
/**
* 开始时间(年月日)
*/
private String dateFrom;
/**
* 截止时间(年月日)
*/
private String dateTo;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditNoticeRoleBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditNoticeTypeBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditPenalizePageBody extends BasePage {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 处罚原因类型
*/
private Integer penalizeReasonType;
/**
* 查询关键字
*/
private String keys;
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCreditPenalizeReasonTypeBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
package com.dsk.common.core.page;
import com.dsk.common.constant.HttpStatus;
import java.io.Serializable;
import java.util.List;
......@@ -41,6 +43,8 @@ public class TableDataInfo implements Serializable
{
this.rows = list;
this.total = total;
this.code = HttpStatus.SUCCESS;
this.msg = "查询成功";
}
public long getTotal()
......
package com.dsk.common.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 邮箱和手机号验证
*/
public class CheckUtils {
public static final String REG_Moblie = "^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))\\d{8}$";
public static final String REG_EMAIL = "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";
/**
* 校验email
* @param email
* @return
*/
public static boolean isEmail(String email){
if (email == null){
return false;
}else {
boolean isMatch = Pattern.matches(REG_EMAIL,email);
return isMatch;
}
}
/**
* 校验手机号
* @param phone
* @return
*/
public static boolean isPhone(String phone){
if (phone == null){
return false;
}else {
Pattern p = Pattern.compile(REG_Moblie);
Matcher m = p.matcher(phone);
return m.matches();
}
}
}
package com.dsk.common.utils;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil;
import com.dsk.acc.openapi.api.AccClient;
import com.dsk.acc.openapi.client.Config;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.config.DskOpenApiConfig;
import com.dsk.common.core.page.TableDataInfo;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
......@@ -24,6 +31,10 @@ public class DskOpenApiUtil {
return request(path, bodyMap, "json");
}
public Map<String,Object> requestBodyLocal(String path, Map<String, Object> bodyMap){
return JSONUtil.toBean(HttpUtil.post("http://127.0.0.1:8766"+path, JSONUtil.toJsonStr(bodyMap)), JSONConfig.create().setIgnoreNullValue(true), Map.class);
}
public Map<String,Object> requestBodyWithHeader(String path, Map<String, Object> bodyMap, Map<String, String> headerMap){
return requestWithHeader(path, bodyMap, "json", headerMap);
}
......@@ -88,4 +99,14 @@ public class DskOpenApiUtil {
}
}
public TableDataInfo responsePage(Map<String, Object> resMap) throws Exception {
Integer code = MapUtils.getInteger(resMap, "code", 300);
Map data = MapUtils.getMap(resMap, "data", null);
if (200 != code) throw new RuntimeException();
Integer count = MapUtils.getInteger(data, "totalCount", 0);
Object list = MapUtils.getObject(data, "list", "");
return new TableDataInfo((List<?>) list, count);
}
}
\ No newline at end of file
......@@ -40,7 +40,7 @@
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"echarts": "5.4.0",
"echarts": "^5.4.0",
"element-resize-detector": "^1.2.4",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/**
* Swiper 7.2.0
* Most modern mobile touch slider and framework with hardware accelerated transitions
* https://swiperjs.com
*
* Copyright 2014-2021 Vladimir Kharlampidi
*
* Released under the MIT License
*
* Released on: October 27, 2021
*/
@font-face {
font-family: 'swiper-icons';
src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');
font-weight: 400;
font-style: normal;
}
:root {
--swiper-theme-color: #007aff;
}
.swiper {
margin-left: auto;
margin-right: auto;
position: relative;
overflow: hidden;
list-style: none;
padding: 0;
/* Fix of Webkit flickering */
z-index: 1;
}
.swiper-vertical > .swiper-wrapper {
flex-direction: column;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: flex;
transition-property: transform;
box-sizing: content-box;
}
.swiper-android .swiper-slide,
.swiper-wrapper {
transform: translate3d(0px, 0, 0);
}
.swiper-pointer-events {
touch-action: pan-y;
}
.swiper-pointer-events.swiper-vertical {
touch-action: pan-x;
}
.swiper-slide {
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
transition-property: transform;
}
.swiper-slide-invisible-blank {
visibility: hidden;
}
/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
height: auto;
}
.swiper-autoheight .swiper-wrapper {
align-items: flex-start;
transition-property: transform, height;
}
/* 3D Effects */
.swiper-3d,
.swiper-3d.swiper-css-mode .swiper-wrapper {
perspective: 1200px;
}
.swiper-3d .swiper-wrapper,
.swiper-3d .swiper-slide,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-cube-shadow {
transform-style: preserve-3d;
}
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-3d .swiper-slide-shadow {
background: rgba(0, 0, 0, 0.15);
}
.swiper-3d .swiper-slide-shadow-left {
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-right {
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-top {
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-bottom {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* CSS Mode */
.swiper-css-mode > .swiper-wrapper {
overflow: auto;
scrollbar-width: none;
/* For Firefox */
-ms-overflow-style: none;
/* For Internet Explorer and Edge */
}
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
display: none;
}
.swiper-css-mode > .swiper-wrapper > .swiper-slide {
scroll-snap-align: start start;
}
.swiper-horizontal.swiper-css-mode > .swiper-wrapper {
scroll-snap-type: x mandatory;
}
.swiper-vertical.swiper-css-mode > .swiper-wrapper {
scroll-snap-type: y mandatory;
}
.swiper-centered > .swiper-wrapper::before {
content: '';
flex-shrink: 0;
order: 9999;
}
.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
margin-inline-start: var(--swiper-centered-offset-before);
}
.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
height: 100%;
min-height: 1px;
width: var(--swiper-centered-offset-after);
}
.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
margin-block-start: var(--swiper-centered-offset-before);
}
.swiper-centered.swiper-vertical > .swiper-wrapper::before {
width: 100%;
min-width: 1px;
height: var(--swiper-centered-offset-after);
}
.swiper-centered > .swiper-wrapper > .swiper-slide {
scroll-snap-align: center center;
}
.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
content: '';
position: absolute;
left: 0;
top: 0;
pointer-events: none;
}
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
height: 1px;
width: var(--swiper-virtual-size);
}
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
width: 1px;
height: var(--swiper-virtual-size);
}
:root {
--swiper-navigation-size: 44px;
/*
--swiper-navigation-color: var(--swiper-theme-color);
*/
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
width: calc(var(--swiper-navigation-size) / 44 * 27);
height: var(--swiper-navigation-size);
margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
z-index: 10;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: var(--swiper-navigation-color, var(--swiper-theme-color));
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-prev:after,
.swiper-button-next:after {
font-family: swiper-icons;
font-size: var(--swiper-navigation-size);
text-transform: none !important;
letter-spacing: 0;
text-transform: none;
font-variant: initial;
line-height: 1;
}
.swiper-button-prev,
.swiper-rtl .swiper-button-next {
left: 10px;
right: auto;
}
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
content: 'prev';
}
.swiper-button-next,
.swiper-rtl .swiper-button-prev {
right: 10px;
left: auto;
}
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
content: 'next';
}
.swiper-button-lock {
display: none;
}
:root {
/*
--swiper-pagination-color: var(--swiper-theme-color);
--swiper-pagination-bullet-size: 8px;
--swiper-pagination-bullet-width: 8px;
--swiper-pagination-bullet-height: 8px;
--swiper-pagination-bullet-inactive-color: #000;
--swiper-pagination-bullet-inactive-opacity: 0.2;
--swiper-pagination-bullet-opacity: 1;
--swiper-pagination-bullet-horizontal-gap: 4px;
--swiper-pagination-bullet-vertical-gap: 6px;
*/
}
.swiper-pagination {
position: absolute;
text-align: center;
transition: 300ms opacity;
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
bottom: 10px;
left: 0;
width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transform: scale(0.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
transform: scale(0.33);
}
.swiper-pagination-bullet {
width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
display: inline-block;
border-radius: 50%;
background: var(--swiper-pagination-bullet-inactive-color, #000);
opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
box-shadow: none;
-webkit-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet:only-child {
display: none !important;
}
.swiper-pagination-bullet-active {
opacity: var(--swiper-pagination-bullet-opacity, 1);
background: var(--swiper-pagination-color, var(--swiper-theme-color));
}
.swiper-vertical > .swiper-pagination-bullets,
.swiper-pagination-vertical.swiper-pagination-bullets {
right: 10px;
top: 50%;
transform: translate3d(0px, -50%, 0);
}
.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {
margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
display: block;
}
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
top: 50%;
transform: translateY(-50%);
width: 8px;
}
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
display: inline-block;
transition: 200ms transform, 200ms top;
}
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
}
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
left: 50%;
transform: translateX(-50%);
white-space: nowrap;
}
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transition: 200ms transform, 200ms left;
}
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transition: 200ms transform, 200ms right;
}
/* Progress */
.swiper-pagination-progressbar {
background: rgba(0, 0, 0, 0.25);
position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
background: var(--swiper-pagination-color, var(--swiper-theme-color));
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: scale(0);
transform-origin: left top;
}
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
transform-origin: right top;
}
.swiper-horizontal > .swiper-pagination-progressbar,
.swiper-pagination-progressbar.swiper-pagination-horizontal,
.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
.swiper-vertical > .swiper-pagination-progressbar,
.swiper-pagination-progressbar.swiper-pagination-vertical,
.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
.swiper-pagination-lock {
display: none;
}
/* Scrollbar */
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
background: rgba(0, 0, 0, 0.1);
}
.swiper-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
bottom: 3px;
z-index: 50;
height: 5px;
width: 98%;
}
.swiper-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
top: 1%;
z-index: 50;
width: 5px;
height: 98%;
}
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
background: rgba(0, 0, 0, 0.5);
border-radius: 10px;
left: 0;
top: 0;
}
.swiper-scrollbar-cursor-drag {
cursor: move;
}
.swiper-scrollbar-lock {
display: none;
}
.swiper-zoom-container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.swiper-slide-zoomed {
cursor: move;
}
/* Preloader */
:root {
/*
--swiper-preloader-color: var(--swiper-theme-color);
*/
}
.swiper-lazy-preloader {
width: 42px;
height: 42px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -21px;
margin-top: -21px;
z-index: 10;
transform-origin: 50%;
animation: swiper-preloader-spin 1s infinite linear;
box-sizing: border-box;
border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
border-radius: 50%;
border-top-color: transparent;
}
.swiper-lazy-preloader-white {
--swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
--swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
100% {
transform: rotate(360deg);
}
}
/* a11y */
.swiper .swiper-notification {
position: absolute;
left: 0;
top: 0;
pointer-events: none;
opacity: 0;
z-index: -1000;
}
.swiper-free-mode > .swiper-wrapper {
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-grid > .swiper-wrapper {
flex-wrap: wrap;
}
.swiper-grid-column > .swiper-wrapper {
flex-wrap: wrap;
flex-direction: column;
}
.swiper-fade.swiper-free-mode .swiper-slide {
transition-timing-function: ease-out;
}
.swiper-fade .swiper-slide {
pointer-events: none;
transition-property: opacity;
}
.swiper-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-fade .swiper-slide-active,
.swiper-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-cube {
overflow: visible;
}
.swiper-cube .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
visibility: hidden;
transform-origin: 0 0;
width: 100%;
height: 100%;
}
.swiper-cube .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-cube.swiper-rtl .swiper-slide {
transform-origin: 100% 0;
}
.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-next,
.swiper-cube .swiper-slide-prev,
.swiper-cube .swiper-slide-next + .swiper-slide {
pointer-events: auto;
visibility: visible;
}
.swiper-cube .swiper-slide-shadow-top,
.swiper-cube .swiper-slide-shadow-bottom,
.swiper-cube .swiper-slide-shadow-left,
.swiper-cube .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-cube .swiper-cube-shadow {
position: absolute;
left: 0;
bottom: 0px;
width: 100%;
height: 100%;
opacity: 0.6;
z-index: 0;
}
.swiper-cube .swiper-cube-shadow:before {
content: '';
background: #000;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
filter: blur(50px);
}
.swiper-flip {
overflow: visible;
}
.swiper-flip .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
}
.swiper-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-flip .swiper-slide-active,
.swiper-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-flip .swiper-slide-shadow-top,
.swiper-flip .swiper-slide-shadow-bottom,
.swiper-flip .swiper-slide-shadow-left,
.swiper-flip .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-creative .swiper-slide {
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
overflow: hidden;
transition-property: transform, opacity, height;
}
.swiper-cards {
overflow: visible;
}
.swiper-cards .swiper-slide {
transform-origin: center bottom;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
overflow: hidden;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -536,6 +536,21 @@ ul, li {
.btn_primary{
background-color: #0081FF;
color: #fff;
&.btn_disabled{
background: #D3D3D3;
cursor: auto;
&:hover{
background: #D3D3D3;
}
}
&.btn_shallow{
color: #0081FF;
background: rgba(0, 129, 255, 0.16);
&:hover{
background: #0081FF;
color: #fff;
}
}
&.h28{
line-height: 28px;
}
......@@ -574,14 +589,20 @@ ul, li {
//搜索框
.searchInput{
width: 590px;
height: 34px;
height: 32px;
border-radius: 2px 0px 0px 2px;
opacity: 1;
border: 1px solid #EFEFEF;
position: relative;
overflow: hidden;
.el-input{
margin: -2px -1px;
margin-top: -1px;
//line-height: 32px;
.el-input__inner{
line-height: 32px;
height: 32px;
border: 0;
}
}
.btn{
background: #F5F5F5;
......
.app-container{
padding: 0;
}
//小导航
.miantitle{
color: #232323;
font-size: 12px;
margin: 12px 24px;
>span{
opacity: 0.4;
&:last-child{opacity:0.8}
}
}
.overflows{
overflow: initial;
}
......@@ -237,6 +250,9 @@
.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{
background: #F9FCFF;
}
.el-table th.el-table__cell.is-leaf{
border-bottom: 0;
}
.has-gutter{
th{
height: 40px;
......@@ -347,16 +363,24 @@
width: 137px;
display: inline-block;
text-align: right;
opacity: 0.8
opacity: 0.8;
i{
color: #FF3C3C;
font-style: initial;
padding-right: 2px;
}
}
.el-input{
display: inline-block;
width: 240px;
.el-input__inner{
width: 240px;
width: 100%;
height: 32px;
border-radius: 0px 0px 0px 0px;
opacity: 1;
border-radius: 0px;
&:hover{
border-color: #0081FF;
}
}
.el-input__suffix{
height: 32px;
......@@ -373,15 +397,421 @@
.popbot{
text-align: right;
padding-top: 8px;
padding-right: 47px;
padding-right: 0;
.btn{
border-radius: 0;
width: 80px;
}
}
}
.popform.i{
.left{
width: 85px;
}
.el-input{
width: 335px;
}
}
.popform.j{
.left{
width: 116px;
}
.el-input{
width: 374px;
}
}
.types{
display: flex;
justify-content: space-between;
padding: 8px 0 24px;
>div{
cursor: pointer;
>i{
width: 14px;
height: 14px;
border-radius: 150%;
border: 1px solid #DCDFE6;
float: left;
margin: 3px 8px 0 0;;
}
&.on{
color: #0081FF;
>i{
border-color: #0081FF;
&:after{
content: " ";
width: 8px;
height: 8px;
border-radius: 50%;
background: #0081FF;
float: left;
margin: 2px;
}
}
}
}
}
}
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover{
background: #F4F6F9;
color: #0081FF;
}
//跟进记录、工作待办
.records{
width: 800px;
box-sizing: content-box;
padding: 0 16px 24px;
.writeIn{
margin-top: -10px;
.default{
width: 800px;
height: 46px;
background: #F3F4F5;
border-radius: 6px;
line-height: 46px;
>img{
float: left;
width: 16px;
margin: 15px 4px 0px 16px;
}
>div{
font-size: 14px;
opacity: 0.4;
}
}
.writting{
width: 800px;
padding: 16px;
border-radius: 6px;
border: 1px solid #68AEFF;
.wri_top{
>img{
float: left;
width: 16px;
}
.el-input{
width: calc(100% - 26px);
display: inline-block;
}
.el-input__inner{
line-height: 16px;
height: 16px;
border: 0;
padding: 0;
text-indent: 8px;
}
}
.wr_bot{
position: relative;
padding-top: 25px;
display: flex;
.el-input{
display: inline-block;
margin-right: 12px;
.el-input__inner{
height: 32px;
padding: 0;
text-indent: 30px;
width: 100px;
&:hover{
border-color: #0081FF;
}
}
.el-input__prefix{
left: 8px;
top: 4px;
}
.el-input__suffix{
height: 32px;
right: 13px;
}
.el-input__icon{
line-height: 32px;
}
.el-icon-arrow-up:before{
content: "\e78f";
opacity: 0.4;
}
}
.times{
display: inline-block;
position: relative;
>img{
position: absolute;
left: 8px;
top: 8px;
z-index: 1;
}
.el-input{
position: absolute;
}
.el-input__icon{
opacity: 0;
}
}
.w128{
.el-input__inner{
width: 128px;
}
}
}
}
}
.recordlist{
padding-left: 10px;
padding-top: 19px;
.rec_detail{
border-left: 1px dashed rgba(0,129,255,0.5);
font-size: 14px;
padding-bottom: 34px;
&:last-child{
border: 0;
}
.rec_time{
color: #0081FF;
position: relative;
.el-icon-time{
font-size: 16px;
float: left;
margin: -1px 10px 0 -8px;
background: #fff;
}
.operate{
display: none;
position: absolute;
right: 0;
top: 0;
>img{
margin-left: 16px;
cursor: pointer;
}
}
}
.rec_con{
margin: 12px 0 0 18px;
background: #F6F9FD;
border-radius: 6px;
padding: 24px;
//box-sizing: content-box;
box-sizing: border-box;
>div{
>span{opacity: 0.8;}
line-height: 30px;
&.rec_text{
opacity: 0.4;
>span{
padding-right: 24px;
}
}
>strong{
opacity: 1;
font-size: 18px;
line-height: 14px;
}
}
}
}
.rec_detail:hover{
.operate{
display: block;
}
.rec_con{
border: 1px solid #68AEFF;
}
}
}
.tasktitle{
color: #3D3D3D;
line-height: 28px;
font-size: 14px;
padding-left: 11px;
margin-top: 24px;
&:after{
content: ' ';
width: 4px;
height: 4px;
background: #0081FF;
border-radius: 50%;
float: left;
margin-top: 12px;
margin-left: -9px;
}
>span{
width: 88px;
height: 26px;
border-radius: 14px;
border: 1px solid #FF3C3C;
color: #FF3C3C;
line-height: 26px;
text-align: center;
display: inline-block;
margin-left: 10px;
}
}
.tasklist{
padding: 24px;
background: #F6F9FD;
border-radius: 6px;
margin-top: 16px;
position: relative;
.task_name{
font-size: 16px;
}
.task_con{
padding-top: 12px;
line-height: 14px;
font-size: 14px;
>span{
color: rgb(167,167,167);
padding-right: 28px;
}
}
.select{
position: absolute;
width: 88px;
height: 32px;
background: #E0E4EA;
border-radius: 4px;
right: 16px;
top: 30px;
}
}
}
//资料文档、相关企业
.searchbtns{
display: flex;
position: absolute;
right: 16px;
top: 17px;
.searchInput{
width: 178px;
border: 1px solid #D9D9D9;
.el-input--medium .el-input__inner{
font-size: 12px;
}
}
.b1{
padding: 0 5px;
border-radius: 2px;
}
.b2{
padding: 0 15px;
border-radius: 2px;
}
.b3{
padding: 0 10px;
border-radius: 2px;
}
.select{
width: 110px;
.el-input__inner{
width: 110px;
height: 32px;
background: #FFFFFF;
border-radius: 2px;
border: 1px solid #D9D9D9;
}
.el-input--medium .el-input__icon{
line-height: 32px;
}
margin-right: 10px;
}
}
.document{
padding:0 16px 16px;
margin-top: -14px;
.el-table {
color: #232323;
&::before{
background: #FFFFFF;
}
th.el-table__cell.is-leaf, td.el-table__cell{
border: 0;
color: #232323;
padding: 2px 0 0;
}
td.el-table__cell{
padding: 12px 0;
}
.el-table__header-wrapper{
border-bottom: 1px solid #eeeeee;
}
.el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell{
background: #F6F9FC;;
}
.el-table__header-wrapper th{
background: #FFFFFF;
font-size: 12px;
opacity: 0.8;
font-weight: 400;
}
.is-sortable .sort-caret.ascending{
border-bottom-color: #0081FF;
opacity: 0.4;
}
.sort-caret.descending{
border-top-color:#0081FF;
opacity: 0.4;
}
.ascending .sort-caret.ascending{
opacity: 1;
}
.descending .sort-caret.descending{
opacity: 1;
}
.img{
float: left;
margin-right: 8px;
}
}
}
/*
客户管理
*/
//表格搜索
.table_search{
padding-bottom: 16px;
display: flex;
justify-content: space-between;
.searchInput{
width: 320px;
.el-input__inner{
font-size: 12px;
}
}
}
.p10{
padding: 0 10px;
}
.tips{
display: inline-block;
padding: 4px 8px;
border-radius: 2px;
font-size: 12px;
margin-right: 8px;
&.tip1{
background-color: #E4F3FD;
color: #41A1FD;
}
&.tip2{
background-color: #F3F3FF;
color: #8491E8;
}
&.tip3{
background-color: #DEF6F0;
color: #0BAE8D;
}
}
* {
padding: 0;
margin: 0;
}
div,
dl,
dt,
dd,
form,
h1,
h2,
h3,
h4,
h5,
h6,
img,
ol,
ul,
li,
table,
th,
td,
p,
span,
a {
border: 0;
}
img,
input {
border: none;
vertical-align: middle;
background: none;
outline: none;
}
html {
height: 100%;
box-sizing: border-box;
}
body {
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
}
ul,
ol {
list-style-type: none;
}
th,
td,
input {
font-size: 12px;
}
h3 {
font-size: 14px;
}
s,
i,
em {
font-style: normal;
text-decoration: none;
}
button {
border: none;
cursor: pointer;
font-size: 12px;
background-color: transparent;
}
select {
border-width: 1px;
_zoom: 1;
border-style: solid;
padding-top: 2px;
font-size: 12px;
}
.clear {
clear: both;
font-size: 1px;
height: 0;
visibility: hidden;
line-height: 0;
}
.clearfix:after {
content: "";
display: block;
clear: both;
}
.clearfix {
zoom: 1;
}
.float_left {
float: left;
}
.float_right {
float: right;
}
.el-input {
width: 100%;
}
.el-input .el-input__inner {
width: 100%;
height: 34px;
line-height: 34px;
background: #ffffff;
border: 1px solid #e0e0e0;
border-radius: 2px;
box-sizing: border-box;
}
.el-input__icon {
line-height: 34px;
}
.el-dropdown-link .el-input {
width: 100%;
}
.el-dropdown-link .el-input__inner {
width: 100%;
}
.el-input--suffix .el-input__inner {
padding-right: 15px;
}
.el-select .el-input.is-focus .el-input__inner,
.el-input.is-active .el-input__inner,
.el-input__inner:focus,
.el-select .el-input__inner:focus,
.el-range-editor.is-active:focus-within {
border-color: #3181fa;
}
.el-popper[x-placement^=top] {
margin-bottom: 12px;
}
.el-select-dropdown .popper__arrow {
display: none;
}
.el-popper .popper__arrow {
display: none;
}
.select-popper {
text-align: center;
display: inline-block;
position: relative;
color: #333333;
font-size: 14px;
cursor: pointer;
margin-right: 24px;
}
.select-popper .select-popper-img {
width: 24px;
height: 12px;
position: absolute;
top: -10px;
right: 2px;
}
.select-popper .el-select__tags,
.select-popper .el-cascader__tags,
.select-popper .el-input__suffix {
display: none;
}
.select-popper:hover {
color: #0381fa;
}
.select-popper-active {
color: #0381fa;
}
.select-popper-title {
padding: 4px 6px;
}
.select-popper-title .colorhover {
color: #0381fa;
}
.select-popper::-webkit-scrollbar-thumb {
background-color: #a1a3a9;
border-radius: 6px;
}
.select-popper::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.select-popper::-webkit-scrollbar-track {
background: #fff;
}
.select-popper::-webkit-scrollbar-corner {
background: #fff;
}
.select-popper .el-select {
width: 100%;
}
.cascader-region {
position: absolute;
left: 0;
top: 0px;
opacity: 0;
line-height: 16px;
}
.cascader-region .el-input {
width: 100%;
line-height: 16px;
}
.cascader-region .el-input .el-input__inner {
width: 100%;
height: 16px !important;
}
.content_item .select-caret {
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
line-height: 16px;
font-weight: 400;
color: #333333;
cursor: pointer;
position: relative;
}
.content_item .select-popper:hover .select-caret {
color: #0074E5;
}
.content_item .select-caret:focus {
border: none;
outline: none;
}
.content_item .geduan{
width: 100%;
height: 0px;
opacity: 1;
border: 1px solid #EFEFEF;
margin: 16px 0px;
}
.content_item .search-new {
width: 100%;
padding-bottom: 16px;
}
.content_item .search-new span:last-child {
display: inline-block;
width: 80px;
text-align: center;
color: #5B5B5B;
line-height: 32px;
cursor: pointer;
border-radius: 2px 2px 2px 2px;
border: 1px solid #D4D4D4;
opacity: 1;
}
.content_item .search-new span:first-child {
margin-right: 12px;
display: inline-block;
width: 80px;
text-align: center;
cursor: pointer;
background: #0089ff;
color: #fff;
line-height: 34px;
border-radius: 2px 2px 2px 2px;
opacity: 1;
}
.content_item .search-new span:first-child:hover {
background: #0080FF;
}
.content_item .search-new span:last-child:hover {
background: #f5faff;
color: #0081FF;
border-color: #0081FF;
}
......@@ -92,13 +92,14 @@ export const constantRoutes = [
path: '/party',
component: Layout,
hidden: true,
name: 'Party',
redirect: 'noredirect',
children: [
{
path: 'party-a',
component: () => import('@/views/detail/party-a/index'),
name: 'PartyA',
meta: { title: '甲方详情' }
meta: { title: '甲方详情' },
},
{
path: 'party-b',
......
<template>
<div class="app-container">
客户列表
<div>
<div class="miantitle">
<span>客户管理</span>
<span> / 客户列表</span>
</div>
<div class="app-container">
<el-card class="box-card noborder">
<div class="tables">
<div class="empty" v-if="tableData == null || tableData.length == 0">
<img src="@/assets/images/project/empty.png">
<div class="p1">添加你的第一位客户吧</div>
<div class="p2">抱歉,你还未添加客户,快去添加吧</div>
<div class="btn btn_primary h36 w88" @click="opennew">添加客户</div>
<div class="btn btn_primary btn_shallow h36 w88">批量导入</div>
</div>
<div class="table_search">
<div class="searchInput">
<el-input type="text" placeholder="输入企业名称查询"></el-input>
<div class="btn">搜索</div>
</div>
<div class="dc">
<div class="total">共126条</div>
<div class="btn-export"><img src="@/assets/images/project/import.png">批量导入</div>
<div class="btn btn_primary h32 p10" @click="opennew"><div class="img img1"></div>添加客户</div>
</div>
</div>
<el-table
:data="tableData"
stripe border
style="width: 100%"
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column
prop="index"
label="序号"
width="47">
</el-table-column> <el-table-column
prop="date"
label="企业名称"
width="441">
<template slot-scope="scope">
<div class="ps1">
<div class="wordprimary ps2">中国建筑第八工程局有限公司重庆至万州高铁</div>
<div class="ps3">
<div>写跟进<img src="@/assets/images/project/edit_1.png"></div>
<div>编辑信息<img src="@/assets/images/project/edit_2.png"></div>
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="name"
label="合作项目"
width="76">
</el-table-column>
<el-table-column
prop="name"
label="跟进项目"
width="76">
</el-table-column>
<el-table-column
prop="name"
label="储备项目"
width="76">
</el-table-column>
<el-table-column
prop="name"
label="法定代表人"
width="110">
</el-table-column>
<el-table-column
prop="name"
label="注册地区"
width="160">
</el-table-column>
<el-table-column
prop="name"
label="注册资本金(万元)"
width="140">
</el-table-column>
<el-table-column
prop="address"
label="企业主体评级" width="100">
</el-table-column>
<el-table-column
prop="address"
label="上市公司" width="76">
</el-table-column>
<el-table-column
prop="address"
label="局级大客户" width="88">
</el-table-column>
<el-table-column
prop="address"
label="客户等级" width="76">
</el-table-column>
<el-table-column
prop="address"
label="客户性质" width="76">
</el-table-column>
<el-table-column
prop="address"
label="客户级别" width="76">
</el-table-column>
<el-table-column
prop="address"
label="企业母公司" width="268">
<template slot-scope="scope">
<div class="wordprimary">中国建筑第八工程局有限公司重庆至万州高铁</div>
</template>
</el-table-column>
<el-table-column
prop="address"
label="主营业务" width="120">
</el-table-column>
<el-table-column
prop="address"
label="发包属性" width="120">
</el-table-column>
<el-table-column
prop="address"
label="跟进人" width="110">
</el-table-column>
</el-table>
<div class="bottems">
<el-pagination
background
:page-size="20"
:current-page="1"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="1000">
</el-pagination>
</div>
</div>
<el-dialog
class="popups"
:visible.sync="dialogVisible"
width="534px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加客户</span>
</div>
<div class="popform j">
<div class="row">
<span class="left"><i>*</i>企业名称:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">法定代表人:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">注册资本(万):</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">企业注册地:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="popbot">
<div class="wordprimary">前往城投平台寻找客户线索></div>
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">添加</div>
</div>
</div>
</el-dialog>
</el-card>
</div>
</div>
</template>
<script>
import "@/assets/styles/project.scss"
export default {
name: 'CustomList',
data() {
return {
return{
dialogVisible:false,
textarea:"",
nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签
tipsvalue:"",//标签填写内容
tableData: [
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
]
}
},
created() {
},
methods: {
methods:{
//翻页
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
cancel(){
this.dialogVisible = false
},
//打开新建窗口
opennew(){
this.dialogVisible = true
},
}
}
</script>
<style lang="scss" scoped>
.app-container{
height: calc(100vh - 134px)
}
.box-card{
padding-top: 16px;
width: 100%;
height: 100%;
}
.dc{
font-size: 12px;
color: #3D3D3D;
font-weight: 400;
position: relative;
&::after{
content: ' ';
width: 2px;
height: 2px;
background: rgba(35,35,35,0.4);
border-radius: 50%;
position: absolute;
top: 16px;
left: 14px;
}
>div{
display: inline-block;
margin-left: 20px;
}
}
.img.img1{
margin-right: 2px;
background: url('../../../../src/assets/images/project/add_2.png')no-repeat center center;
}
.w88{
width: 88px;
}
.tables{
position: relative;
height: calc(100vh - 134px);
.empty{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
.btn{
margin-right: 8px;
margin-top: 12px;
}
}
}
.ps1{
display: flex;
justify-content: space-between;
.ps2{
width: 270px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ps3{
width: 150px;
display: flex;
justify-content: right;
>div{
margin-left: 12px;
&:hover{
color: #0CBC6D;
cursor: pointer;
}
>img{
float: right;
margin: 3px 0 0 4px
}
}
}
}
.popbot{
.wordprimary{
display: inline;
padding-right: 26px;
}
}
</style>
<template>
<div class="app-container">
客户概览
<div>
<div class="miantitle">
<span>客户管理</span>
<span> / 客户概览</span>
</div>
<div class="app-container">
<div class="topions">
<div class="icons">
<div class="name">客户总数</div>
<div class="count">120</div>
<img class="icon_img" src="@/assets/images/project/icon_1.png">
</div>
<div class="icons">
<div class="name">已合作客户</div>
<div class="count">56</div>
<img class="icon_img" src="@/assets/images/project/icon_2.png">
</div>
<div class="icons">
<div class="name">局级大客户</div>
<div class="count">50</div>
<img class="icon_img" src="@/assets/images/project/icon_3.png">
</div>
<div class="icons">
<div class="name">今日紧进客户</div>
<div class="count">30</div>
<img class="icon_img" src="@/assets/images/project/icon_4.png">
</div>
<div class="icons">
<div class="name">储备项目数</div>
<div class="count">33</div>
<img class="icon_img" src="@/assets/images/project/icon_5.png">
</div>
</div>
<div class="flex">
<el-card class="box-card noborder left" style="position: relative">
<div class="cardtitles">客户级别</div>
<div class="chartsum">
<div class="sum">23家</div>
<div>11%</div>
<div>有息债务/总负债</div>
</div>
<div class="flex">
<div id="khjb" class="chart1"></div>
<div class="tables">
<el-table
:data="tableData"
stripe border
style="width: 100%"
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column
prop="name"
label="名称">
</el-table-column>
<el-table-column
prop="name"
label="数量(家)">
</el-table-column>
<el-table-column
prop="point"
label="占比">
</el-table-column>
</el-table>
</div>
</div>
</el-card>
<el-card class="box-card noborder right">
<div class="cardtitles">客户跟进动态
<div class="labels">
<div :class="{'on':datatype==1}" @click="getDT(1)">周</div>
<div :class="{'on':datatype==2}" @click="getDT(2)">月</div>
<div :class="{'on':datatype==3}" @click="getDT(3)">年</div>
</div>
</div>
<div id="khgjdt" class="chart2"></div>
</el-card>
</div>
<div class="flex">
<el-card class="box-card noborder left">
<div class="cardtitles">客户性质分析</div>
<div class="chart2" id="khxz"></div>
</el-card>
<el-card class="box-card noborder right">
<div class="cardtitles">客户资信评级</div>
<div class="chart2" id="khzxpj"></div>
</el-card>
</div>
<el-card class="box-card noborder">
<div class="cardtitles">客户动态</div>
<div class="trendslist">
<div class="trends" v-for="item in datalist">
<div class="names">{{item.name}}</div>
<div class="trendtips"><div class="tips tip3">{{item.tip1}}</div><div class="tips tip2">{{item.tip2}}</div></div>
<div class="trendcon">{{item.text}}</div>
<div class="time">{{item.time}}</div>
</div>
<div class="tables" style="width: 100%">
<div class="bottems">
<el-pagination
background
:page-size="10"
:current-page="1"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="datalist.length">
</el-pagination>
</div>
</div>
</div>
</el-card>
</div>
</div>
</template>
<script>
import "@/assets/styles/project.scss"
import * as echarts from 'echarts'
export default {
name: 'Overview',
data() {
return {
//客户级别
chartDom: '',
myChart: '',
option: '',
//客户跟进
chartDom1: '',
myChart1: '',
option1: '',
//客户性质
chartDom2: '',
myChart2: '',
option2: '',
// 客户资信
chartDom3: '',
myChart3: '',
option3: '',
//表格数据
tableData:[
{name:'集团总部',sum:'23',point:'11%'},
{name:'一级单位',sum:'61',point:'29%'},
{name:'二级单位',sum:'60',point:'29%'},
{name:'三级单位',sum:'21',point:'10%'},
{name:'其他单位',sum:'44',point:'21%'},
],
datatype:'1',//切换类型
dtdata:[],//数据
dttime:[],//坐标
datalist:[
{name:'重庆市江北区国有资本投资运营管理集团有限公司',time:'2023-05-30',text:'新增招标公告:【江北房地产综合开发公司名下不动产鲤鱼池片区资产评估项目】 公开选取【资产评估】机构的公告',tip1:'正向',tip2:'招标公告'},
{name:'上海城投(集团)有限公司',time:'2023-05-29',text:'新增招标公告:北横通道新建工程——机电、装饰工程Ⅱ标段',tip1:'正向',tip2:'招标公告'},
{name:'上海申迪(集团)有限公司',time:'2023-5-27',text:'新增招标公告:上海国际旅游度假区核心区3.1平方公里绿地公园配套停车场项目',tip1:'正向',tip2:'招标公告'},
{name:'上海浦东建设股份有限公司',time:'2023-5-25',text:'新增招标公告:张村地块基础设施建设及上汽地块配套道路桥梁项目道路照明工程二标段',tip1:'正向',tip2:'招标公告'},
{name:'上海浦东建设股份有限公司',time:'2023-5-24',text:'新增供应商:江苏安神交通工程有限公司',tip1:'提示',tip2:'新增供应商'},
],
}
},
created() {
},
mounted(){
this.$nextTick(()=>{
this.chartDom = document.getElementById("khjb")
this.myChart = echarts.init(this.chartDom)
this.chartDom2 = document.getElementById("khxz")
this.myChart2 = echarts.init(this.chartDom2)
this.chartDom3 = document.getElementById("khzxpj")
this.myChart3 = echarts.init(this.chartDom3)
this.initChart()
this.getDT(1)
})
},
methods: {
initChart(){
//客户级别
this.option = {
tooltip: {
trigger: 'item'
},
color:['#8A82F3','#5B9CF7','#8DCF96','#FFDC6B','#FE9C77'],//修改配色
series: [
{
name: '',
type: 'pie',
radius: ['50%','70%'],
data: [
{ value: 23, name: '集团总部:11%' },
{ value: 61, name: '一级单位:29%' },
{ value: 60, name: '二级单位:29%' },
{ value: 21, name: '三级单位:10%' },
{ value: 44, name: '其他单位: 21%' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
this.option && this.myChart.setOption(this.option)
//客户性质分析
this.option2 = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['地方单位', '事业单位', '政府机关', '中央企业', '上市公司', '军队', '民营企业','其他'],
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '',
type: 'bar',
barWidth: '20%',
data: [100, 152, 200, 334, 390, 330, 220,256,178],
itemStyle:{
normal: {
barBorderRadius: [4, 4, 0, 0],
color: '#165DFF'
}
}
}
]
}
this.option2 && this.myChart2.setOption(this.option2)
//客户资质分析
this.option3 = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['AA', 'AA+', 'AA-', 'A', 'A+', 'A', 'A-','其他'],
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '',
type: 'bar',
barWidth: '20%',
data: [110, 112, 190, 234, 310, 350, 220,276,198],
itemStyle:{
normal:{
barBorderRadius:[4,4,0,0],
color:'#14C9C9'
},
}
}
]
}
this.option3 && this.myChart3.setOption(this.option3)
},
initDT(datas,labels){
this.chartDom1 = document.getElementById("khgjdt")
this.myChart1 = echarts.init(this.chartDom1)
//客户跟进动态
this.option1 = {
xAxis: {
type: 'category',
data: labels
},
yAxis: {
type: 'value'
},
grid:{
left:'8%',
top:'8%',
right:'5%',
bottom:'10%',
},
tooltip:{
axisPointer:{ //悬浮于圆点展示标签
type:'axis'
},
// trigger: 'axis'
},
series: [
{
name: '总跟进',
data: datas,
type: 'line',
smooth: true,
itemStyle: {
normal:{
color:'#0081FF'
}
},
label:{
normal:{
show:false
}
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'rgba(0, 129, 255, 0.5)'
}, {
offset: 1, color: 'rgba(0, 129, 255, 0)'
} ],
global: false
}
},
}
]
}
this.option1 && this.myChart1.setOption(this.option1)
},
getDT(type){
this.datatype = type
let time = new Date()
let week = ['周一','周二','周三','周四','周五','周六','周日']
let weekdata = [200,150,300,240,400,380,460]
let monthdata = [400,200,350,170,190,280,260,308,406,387,458,695,125,360,512,546,298,365,458,536,345,200,150,300,240,400,380,460,472,365,547]
let yeardata = [1908,1500,2300,1456,2354,2564,1254,1236,4561,4521,1236,4561,3521]
let datas = []
let labels = []
switch (type) {
case 1:
time = time.getDay()
// week.length = time
weekdata.length = time
for(var i=0;i<7;i++){
if(i > time){
weekdata.push('')
}
}
labels = week
datas = weekdata
break;
case 2:
let days = new Date(time.getFullYear(),time.getMonth()+1,0).getDate()//获取到本月天数
time = time.getDate()
monthdata.length = time
for(var i=1;i<days;i++){
labels.push(i+'日')
if(i > time){
monthdata.push("")
}
}
datas = monthdata
break;
case 3:
time = time.getMonth()+1
yeardata.length = time
for(var i=1;i<12;i++){
labels.push(i+'月')
if(i>time){
yeardata.push('')
}
}
datas = yeardata
break;
default:
break;
}
this.dtdata = datas
this.dttime = labels
this.initDT(datas,labels)
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
}
}
</script>
<style lang="scss" scoped>
.box-card{
margin: 12px 0 0;
padding-bottom: 24px;
&.left{
width: calc(62% - 16px);
margin-right: 14px;
}
&.right{
width: 40%;
}
}
.topions{
width: 100%;
display: flex;
.icons{
width: calc(20%);
margin-right: 16px;
height: 96px;
background: url("../../../assets/images/project/beijing.png") top center no-repeat;
background-size: 100% 100%;
position: relative;
padding: 24px;
&:last-child{
margin-right: 0;
}
.name{
font-size: 14px;
color: #3D3D3D;
line-height: 14px;
}
.count{
font-size: 26px;
font-weight: 700;
color: #0081FF;
padding-top: 14px;
line-height: 26px;
}
.icon_img{
width: 70px;
position: absolute;
right: 0;
bottom: 0;
}
}
}
.chart1{
width: 428px;
height: 240px;
}
.tables{
width: calc(100% - 428px);
}
.chartsum{
position: absolute;
color: #3D3D3D;
text-align: center;
top: 155px;
left: 168px;
>div{
font-size: 10px;
line-height: 18px;
padding: 0 2px;
&.sum{
font-size: 18px;
padding-bottom: 4px;
}
}
}
.chart2{
width: 100%;
height: 265px;
}
.cardtitles{
position: relative;
.labels{
width: 120px;
height: 22px;
position: absolute;
border-radius: 2px;
right: 24px;
top: 24px;
>div{
width: 40px;
height: 100%;
text-align: center;
line-height: 22px;
float: left;
opacity: 1;
border: 1px solid #EFEFEF;
margin-left: -1px;
font-weight: 400;
font-size: 12px;
color: rgba(35, 35, 35, 0.80);
cursor: pointer;
&.on{
background: #0081FF;
color: #FFFFFF;
}
&:first-child{
border-radius: 2px 0px 0px 2px;
}
&:last-child{
border-radius: 0px 2px 2px 0px;
}
}
}
}
.trendslist{
border-top: 1px solid #EFEFEF;
.trends{
position: relative;
padding: 16px 16px 0;
&:hover{
background: #F6F9FC;
}
.names{
width: calc(100% - 92px);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 23px;
font-size: 16px;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: 700;
color: #3D3D3D;
line-height: 23px;
}
.trendtips{
padding: 8px 0 12px;
}
.trendcon{
border-bottom: 1px solid #EFEFEF;
font-size: 14px;
font-family: MicrosoftYaHei-Regular, MicrosoftYaHei;
font-weight: 400;
color: rgba(35,35,35,0.8);
line-height: 18px;
padding-bottom: 16px;
}
.time{
position: absolute;
right: 16px;
top: 26px;
font-size: 14px;
opacity: 0.4;
}
}
}
</style>
<template>
<div class="app-container part-container">
<div style="background: #FFFFFF; height: 300px;">
商务信息
</div>
</div>
</template>
<script>
export default {
name: 'Business',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.part-container{
padding: 0;
}
</style>
<template>
<div class="header-container">
<div class="bread-crumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/' }">企业数据</el-breadcrumb-item>
<el-breadcrumb-item><a href="/">查企业</a></el-breadcrumb-item>
<el-breadcrumb-item>中铁一建</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="flex-box part-header">
<img class="header-logo" src="@/assets/images/avatar.png">
中交第二航务工程局有限公司
</div>
</div>
</template>
<script>
export default {
name: 'Header',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.bread-crumb{
.el-breadcrumb{
font-size: 12px;
::v-deep .el-breadcrumb__separator{
margin: 0 5px;
}
::v-deep .el-breadcrumb__inner.is-link, .el-breadcrumb__inner a{
color: rgba(35,35,35,0.4);
&:hover{
color: #1890ff;
}
}
::v-deep .el-breadcrumb__item{
&:last-child .el-breadcrumb__inner{
color: #232323;
}
&:nth-last-child(2){
.el-breadcrumb__separator{
color: #232323;
}
}
}
}
}
.part-header{
font-size: 16px;
font-weight: bold;
color: #232323;
background: #FFFFFF;
padding: 14px 16px;
margin-top: 12px;
.header-logo{
width: 28px;
height: 28px;
margin-right: 16px;
}
}
</style>
<template>
<div id="detailPart" class="detail-container" :style="sideHeight?'height:'+sideHeight+'px':''">
<el-input
placeholder="搜索"
class="side-input"
v-model="searchText">
<i slot="prefix" class="el-input__icon el-icon-search" @click="handleSearch"></i>
</el-input>
<el-menu
default-active="1"
class="detail-menu"
@open="handleOpen">
<template v-for="(item, index) in sideRoute">
<el-submenu :index="index.toString()" v-if="item.children">
<template slot="title">
<span>{{item.title}}</span>
</template>
<el-menu-item :index="index+'-'+idx" v-for="(it, idx) in item.children" :key="idx" @click="handleItem(it)">{{it.title}}</el-menu-item>
</el-submenu>
<el-menu-item :index="index.toString()" @click="handleItem(item)" v-else>{{item.title}}</el-menu-item>
</template>
</el-menu>
</div>
</template>
<script>
export default {
name: 'Sidebar',
props: {
partBoxHeight: {
type: Number,
default: null
},
},
data() {
return {
searchText: '',
sideRoute: [
{title: '企业概要', pathName: '', children: [
{title: '企业速览', pathName: 'overview'},
{title: '工商信息', pathName: 'businfo'},
{title: '股东信息', pathName: 'holderinfo'},
{title: '高管信息', pathName: 'execuinfo'},
{title: '对外投资', pathName: 'overseas'},
{title: '分支机构', pathName: 'branch'}
]},
{title: '财务简析', pathName: 'financial'},
{title: '项目商机', pathName: '', children: [
{title: '土地交易', pathName: ''},
{title: '拟建项目', pathName: ''},
{title: '专项债项目', pathName: ''},
{title: '招标计划', pathName: ''},
{title: '招标公告', pathName: ''},
{title: '标讯Pro', pathName: ''},
{title: '行政许可', pathName: ''}
]},
{title: '业务往来', pathName: '', children: [
{title: '客户', pathName: ''},
{title: '供应商', pathName: ''},
{title: '招标代理', pathName: ''},
{title: '历史发包', pathName: ''},
{title: '开标记录', pathName: ''}
]},
{title: '城投分析', pathName: '', children: [
{title: '区域经济', pathName: ''},
{title: '城投那地', pathName: ''},
{title: '同地区城投', pathName: ''}
]},
{title: '风险信息', pathName: '', children: [
{title: '行政处罚', pathName: ''},
{title: '经营异常', pathName: ''},
{title: '被执行人', pathName: ''},
{title: '失信被执行人', pathName: ''},
{title: '裁判文书', pathName: ''},
{title: '法院公告', pathName: ''},
{title: '开庭公告', pathName: ''},
{title: '信用中国', pathName: ''}
]},
{title: '商务信息', pathName: 'business'},
{title: '招标偏好', pathName: ''},
{title: '合作情况', pathName: ''},
{title: '决策链条', pathName: ''},
{title: '跟进记录', pathName: ''}
]
}
},
computed: {
sideHeight() {
let sideHeight = document.getElementById("detailPart")?document.getElementById("detailPart").offsetHeight:null
if(sideHeight<this.partBoxHeight) {
sideHeight = this.partBoxHeight
}else {
sideHeight = null
}
return sideHeight
}
},
created() {
},
methods: {
handleOpen(key, keyPath) {
console.log(key, keyPath)
},
handleItem(item){
this.$emit("currentPath", item)
},
handleSearch(){
console.log('开始搜索了')
}
}
}
</script>
<style lang="scss" scoped>
#app{
.detail-container{
width: 144px;
min-height: calc(100vh - 170px);
padding-bottom: 20px;
background: #FFFFFF;
.side-input{
width: 128px;
margin-top: 16px;
margin-left: 8px;
border: 0;
::v-deep .el-input__inner{
height: 32px;
background: #F3F3F4;
border-radius: 20px;
border: 0;
&::placeholder {
color: #3D3D3D;
}
}
.el-icon-search{
color: #0081FF;
cursor: pointer;
}
}
.detail-menu{
margin-top: 20px;
border-right: 0;
::v-deep .el-menu-item, ::v-deep .el-submenu__title{
height: 30px;
line-height: 30px;
font-size: 14px;
color: #232323;
padding: 0 0 0 16px !important;
text-align: initial !important;
&:hover, &:focus, &.is-active{
background: linear-gradient(91deg, rgba(0,129,255,0.1) 0%, rgba(0,129,255,0) 100%);;
}
.el-submenu__icon-arrow{
color: #232323;
right: 48px;
margin-top: -5px;
}
}
::v-deep .el-submenu .el-menu-item{
font-size: 12px;
color: rgba(35,35,35,0.8);
padding: 0 0 0 27px !important;
min-width: 144px !important;
position: relative;
&:before {
content: "";
position: absolute;
top: 14px;
left: 21px;
width: 2px;
height: 2px;
background: rgba(35,35,35,0.8);
border-radius: 50%;
}
}
}
}
}
</style>
<template>
<div class="app-container">
财务简析
<div class="app-container part-container">
<div class="financial-header">
<div class="common-title">财务简析</div>
<div class="flex-box header-box">
<div class="header-item">总资产<div class="header-item-amount"><span>9332.6</span>亿元</div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount"><span>459.4</span>亿元</div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount"><span>150.0</span>亿元</div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
<div class="header-item">授信余额<div class="header-item-amount"><span>192.11</span>亿元</div><img src="@/assets/images/detail/financial/financial_header04_ico.png"></div>
</div>
</div>
<div class="financial-zcqk">
<div class="common-title">资产情况</div>
<ul class="zcqk-list">
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span><i>{{item.amount}}</i>亿元</span></div>
<div class="zcqk-list-intro">{{item.intro}}</div>
</div>
</li>
</ul>
</div>
<div class="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box">
<div class="zwqk-info">
<div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><span>468.65</span>亿元</div>
<div class="zwqk-pro">资产负债率 50%</div>
<img src="@/assets/images/detail/financial/zwqk_bg_ico.png">
</div>
<div id="myEcharts" style="width: 444px;height:250px; margin: 0 auto;"></div>
</div>
<div class="flex-box zwqk-list">
<div class="list-item" v-for="(item, index) in zwqkList" :key="index">
<div class="flex-box list-item-all">{{item.name}}<img :src="item.ico"></div>
<div class="list-item-amount"><span>{{item.amount}}</span>{{item.unit}}</div>
<div class="list-item-pro">{{item.intro}}<span>{{item.introPro}}</span></div>
</div>
</div>
</div>
<div class="financial-zcqk">
<div class="common-title">资金情况</div>
<ul class="zcqk-list">
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span><i>{{item.amount}}</i>{{item.unit}}</span></div>
<div class="zcqk-list-intro">{{item.intro}}</div>
</div>
</li>
</ul>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
export default {
name: 'Financial',
data() {
return {
zcqkList: [
{ name: '总资产', ico: require('@/assets/images/detail/financial/zcqk_ico1.png'), intro: '总资产越大,表示企业规模越大', amount: '99213', unit: '亿元'},
{ name: '净资产', ico: require('@/assets/images/detail/financial/zcqk_ico2.png'), intro: '该指标越大说明企业实力越强', amount: '99213', unit: '亿元'},
{ name: '货币资金', ico: require('@/assets/images/detail/financial/zcqk_ico3.png'), intro: '该指标越大说明企业越有活力、越有保障', amount: '99213', unit: '亿元'},
{ name: '应收账款', ico: require('@/assets/images/detail/financial/zcqk_ico4.png'), intro: '该指标越大说明企业实力越强', amount: '99213', unit: '亿元'},
{ name: '土地资产', ico: require('@/assets/images/detail/financial/zcqk_ico5.png'), intro: '该指标越大说明企业越有实力,但需要关注抵押情况', amount: '99213', unit: '亿元'},
{ name: '其它应收款', ico: require('@/assets/images/detail/financial/zcqk_ico6.png'), intro: '该指标越大说明企业实力越强', amount: '99213', unit: '亿元'},
{ name: '受限资产', ico: require('@/assets/images/detail/financial/zcqk_ico7.png'), intro: '该指标越大,资产流动性越差', amount: '99213', unit: '亿元'},
{ name: '应收类款项来自政府占比', ico: require('@/assets/images/detail/financial/zcqk_ico8.png'), intro: '该指标越大,说明企业资质及信用越好', amount: '99213', unit: '亿元'},
{ name: '政府补助', ico: require('@/assets/images/detail/financial/zcqk_ico9.png'), intro: '该指标越大,说明企业越被政府看好与扶持', amount: '99213', unit: '亿元'}
],
zwqkList: [
{ name: '借款总额', ico: require('@/assets/images/detail/financial/zwqk_ico1.png'), intro: '借款/有息债务', introPro: '95.19%', amount: '1699.7', unit: '亿元'},
{ name: '债券余额', ico: require('@/assets/images/detail/financial/zwqk_ico2.png'), intro: '债券余额/有息债务', introPro: '95.19%', amount: '1699.7', unit: '亿元'},
{ name: '非标余额', ico: require('@/assets/images/detail/financial/zwqk_ico3.png'), intro: '非标余额/有息债务', introPro: '95.19%', amount: '1699.7', unit: '亿元'},
{ name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '95.19%', amount: '1699.7', unit: '亿元'}
],
zjqkList: [
{ name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '99213', unit: '亿元'},
{ name: '现金比率', ico: require('@/assets/images/detail/financial/zjqk_ico2.png'), intro: '该指标越高,风险越低', amount: '0.8', unit: '%'},
{ name: '筹资现金流', ico: require('@/assets/images/detail/financial/zjqk_ico3.png'), intro: '该指标越高,说明负债越高', amount: '99213', unit: '亿元'},
{ name: '现金流量比率', ico: require('@/assets/images/detail/financial/zjqk_ico4.png'), intro: '该指标越高,风险越低', amount: '0.8', unit: '%'},
{ name: '投资现金流', ico: require('@/assets/images/detail/financial/zjqk_ico5.png'), intro: '该指标越高,说明投资带来的收益越高', amount: '99213', unit: '亿元'},
{ name: '现金到期债务比', ico: require('@/assets/images/detail/financial/zjqk_ico6.png'), intro: '该指标越高,风险越低', amount: '0.8', unit: '%'}
],
echartsData: [
{ value: 1048, name: '有息债务' },
{ value: 735, name: '有息债务/总债务' },
{ value: 580, name: '综合融资成本' },
{ value: 484, name: 'EBITDA保障倍数' }
]
}
},
computed: {
parity() {
return function(val) {
let flag = true
if(val.length % 2 == 0){
flag = true
}else{
flag = false
}
return flag
}
},
},
created() {
},
mounted() {
this.getEcharts()
},
methods: {
getEcharts(){
let myChart = echarts.init(document.getElementById("myEcharts"));
//配置图表
let option = {
tooltip: {
trigger: 'item'
},
grid: {
left:"0",
top:"0",
right:'0',
bottom:"0",
containLabel:true
},
color: ['#5B9CF7','#8DCF96','#FFDC6B','#FE9C77','#8A82F3'],
legend: {
x: 'center',
y: 'bottom',
itemHeight: 9,
textStyle: {
padding: [0, 0, -2, 0],
color: '#000000',
backgroundColor: "transparent",
fontSize: 11,
rich: {
a: {
},
},
}
},
series: [
{
name: '',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
formatter: '{title|{d}%}\n{b}',
rich: {
title: {
fontSize: 18,
align: 'center',
padding: [0, 0, 6, 0]
}
},
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 11,
color: '#3D3D3D'
}
},
labelLine: {
show: false
},
data: this.echartsData
}
]
}
// 使用刚指定的配置项和数据显示图表。
myChart.clear() //清空
myChart.setOption(option)
}
}
}
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
.financial-header{
background: #FFFFFF;
padding: 24px 16px;
.header-box {
justify-content: space-between;
flex-wrap: wrap;
margin: 0 -8px;
.header-item{
width: calc(25% - 16px);
height: 120px;
margin: 20px 8px 0;
padding: 24px 24px;
font-size: 18px;
position: relative;
overflow: hidden;
img{
position: absolute;
right: 0;
bottom: 0;
}
&:nth-child(1){
color: #182980;
background: url("~@/assets/images/detail/financial/financial_header01.png") no-repeat;
background-size: 100% 100%;
img{
width: 115px;
height: 115px;
right: -9px;
bottom: -16px;
}
}
&:nth-child(2){
color: #2B1880;
background: url("~@/assets/images/detail/financial/financial_header02.png") no-repeat;
background-size: 100% 100%;
img{
width: 107px;
height: 116px;
right: -9px;
bottom: -17px;
}
}
&:nth-child(3){
color: #184280;
background: url("~@/assets/images/detail/financial/financial_header03.png") no-repeat;
background-size: 100% 100%;
img{
width: 109px;
height: 99px;
right: -12px;
bottom: -2px;
}
}
&:nth-child(4){
color: #184A80;
background: url("~@/assets/images/detail/financial/financial_header04.png") no-repeat;
background-size: 100% 100%;
img{
width: 84px;
height: 115px;
right: -10px;
bottom: -18px;
}
}
.header-item-amount{
font-size: 12px;
margin-top: 16px;
span{
font-size: 24px;
margin-right: 7px;
}
}
}
}
}
.financial-zcqk{
background: #FFFFFF;
padding: 24px 16px;
margin-top: 12px;
.zcqk-list{
margin-top: 4px;
overflow: hidden;
li{
width: 50%;
height: 80px;
padding-top: 20px;
float: left;
color: #232323;
&:nth-child(2n-1){
border-right: 1px solid #EEEEEE;
>div{
margin-right: 16px;
}
}
&:nth-child(2n){
>div{
margin-left: 16px;
}
}
.zcqk-list-box{
height: 100%;
border-bottom: 1px solid #EEEEEE;
.zcqk-list-line{
font-size: 14px;
justify-content: space-between;
img{
width: 20px;
height: 20px;
margin-right: 7px;
}
span{
display: block;
&:first-child{
font-size: 16px;
}
i{
font-style: normal;
font-size: 18px;
margin-right: 4px;
}
}
}
.zcqk-list-intro{
font-size: 12px;
position: relative;
padding: 6px 0 0 36px;
&:before {
content: "";
position: absolute;
width: 1px;
height: 1px;
top: 13px;
left: 28px;
border-radius: 50%;
border: 2px solid #4F4F4F;
}
}
}
}
}
}
.financial-zwqk{
background: #FFFFFF;
padding: 24px 16px;
margin-top: 12px;
.zwqk-box{
padding-top: 20px;
justify-content: normal;
.zwqk-info{
width: 50%;
height: 248px;
padding: 54px 24px 10px 24px;
color: #4D4C4B;
background: url("~@/assets/images/detail/financial/zwqk_bg.png") no-repeat;
background-size: 100% 100%;
position: relative;
overflow: hidden;
img{
width: 239px;
height: 239px;
position: absolute;
right: -54px;
bottom: -31px;
}
.zwqk-title{
font-size: 22px;
font-weight: 400;
line-height: 0.9;
position: relative;
padding: 0 0 0 16px;
&:before{
position: absolute;
left: 0;
top: 0;
width: 3px;
height: 18px;
background: rgba(77,76,75,0.5);
content:"";
}
}
.zwqk-amount{
font-size: 16px;
margin-top: 32px;
span{
font-size: 40px;
font-weight: bold;
margin-right: 8px;
}
}
.zwqk-pro{
font-size: 16px;
margin-top: 33px;
}
}
}
.zwqk-list{
justify-content: space-between;
flex-wrap: wrap;
.list-item{
width: calc(25% - 16px);
height: 144px;
padding: 23px;
margin-top: 24px;
color: #3D3D3D;
border: 1px solid #E2E7EE;
.list-item-all{
align-items: normal;
justify-content: space-between;
}
.list-item-amount{
padding-top: 11px;
span{
font-size: 24px;
font-weight: bold;
margin-right: 4px;
}
}
.list-item-pro{
font-size: 12px;
padding-top: 11px;
span{
color: #FF3C3C;
margin-left: 2px;
}
}
}
}
}
}
</style>
<template>
<div class="app-container part-container">
<div class="bread-crumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/' }">企业数据</el-breadcrumb-item>
<el-breadcrumb-item><a href="/">查企业</a></el-breadcrumb-item>
<el-breadcrumb-item>中铁一建</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="flex-box part-header">
<img class="header-logo" src="@/assets/images/avatar.png">
中交第二航务工程局有限公司
<Header />
<div class="flex-box part-main">
<div class="part-left">
<side-bar @currentPath="showPartPage" :partBoxHeight="partBoxHeight" />
</div>
<div class="part-right">
<div id="partBox">
<Overview v-if="currentPath.pathName=='overview'" />
<Businfo v-if="currentPath.pathName=='businfo'" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" />
<Overseas v-if="currentPath.pathName=='overseas'" />
<Branch v-if="currentPath.pathName=='branch'" />
<Financial v-if="currentPath.pathName=='financial'" />
<Business v-if="currentPath.pathName=='business'" />
</div>
</div>
</div>
</div>
</template>
<script>
import elementResizeDetectorMaker from "element-resize-detector"
import Header from "./component/Header"
import SideBar from "./component/Sidebar"
import Overview from "./overview/overview" //企业概览-企业速览
import Businfo from "./overview/businfo" //企业概览-工商信息
import Holderinfo from "./overview/holderinfo" //企业概览-股东信息
import Execuinfo from "./overview/execuinfo" //企业概览-高管信息
import Overseas from "./overview/overseas" //企业概览-对外投资
import Branch from "./overview/branch" //企业概览-分支机构
import Financial from "./financial" //财务简析
import Business from "./business" //商务信息
export default {
name: 'PartyA',
components: {
Header,
SideBar,
Overview,
Businfo,
Holderinfo,
Execuinfo,
Overseas,
Branch,
Financial,
Business
},
data() {
return {
currentPath: {
pathName: 'overview' //默认展示页
},
partBoxHeight: null
}
},
created() {
},
mounted() {
const _this = this, erd = elementResizeDetectorMaker(), partBox = document.getElementById("partBox")
erd.listenTo(partBox, element => {
_this.$nextTick(() => {
_this.partBoxHeight = partBox.offsetHeight
})
})
},
methods: {
showPartPage(e){
this.currentPath = e
}
}
}
</script>
......@@ -32,41 +77,15 @@ export default {
.part-container{
padding: 0;
}
.bread-crumb{
.el-breadcrumb{
font-size: 12px;
::v-deep .el-breadcrumb__separator{
margin: 0 5px;
}
::v-deep .el-breadcrumb__inner.is-link, .el-breadcrumb__inner a{
color: rgba(35,35,35,0.4);
&:hover{
color: #1890ff;
}
}
::v-deep .el-breadcrumb__item{
&:last-child .el-breadcrumb__inner{
color: #232323;
}
&:nth-last-child(2){
.el-breadcrumb__separator{
color: #232323;
}
}
}
}
}
.part-header{
font-size: 16px;
font-weight: bold;
color: #232323;
background: #FFFFFF;
padding: 14px 16px;
.part-main{
margin-top: 12px;
.header-logo{
width: 28px;
height: 28px;
margin-right: 16px;
}
align-items: initial;
}
.part-left{
margin-right: 16px;
}
.part-right{
min-width: 1088px;
width: 100%;
}
</style>
<template>
<div class="app-container">
项目订阅
<div class="app-container part-container">
企业速览
</div>
</template>
<script>
export default {
name: 'Subscription',
name: 'Overview',
data() {
return {
}
......@@ -19,5 +19,8 @@ export default {
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
}
</style>
<template>
<div class="app-container">
监控列表
<div class="app-container part-container">
企业速览
</div>
</template>
<script>
export default {
name: 'List',
name: 'Overview',
data() {
return {
}
......@@ -19,5 +19,8 @@ export default {
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
}
</style>
<template>
<div class="app-container operations-container">
<div class="common-title">公司经营</div>
<div class="part-swiper">
<div class="swiper-containers">
<ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index">
<div class="swiper-div">
<div class="operations-title">{{item.range}}-<span>{{item.year}}</span></div>
<div class="flex-box text-cl1 operations-info">
{{item.name}}
<span><img src="@/assets/images/detail/overview/oper_source.png">{{item.name}}</span>
</div>
</div>
</li>
</ul>
</div>
<div class="swiper-button-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div>
<div class="swiper-button-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div>
<div class="flex-box operations-list">
<div class="list-item" v-for="(item, index) in gsjyList" :key="index">
<div class="flex-box list-item-all"><img :src="item.ico">{{item.name}}</div>
<div class="list-item-amount">{{item.amount}}</div>
</div>
</div>
</div>
</template>
<script>
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import "@/assets/lib/swiper/swiper-bundle.css"
export default {
name: 'Overview',
data() {
return {
operList: [
{name:'债务信用评级', rate:'中国标普信用', range:'AA', year:'2021'},
{name:'债务信用评级', rate:'中国标普信用', range:'AA', year:'2021'},
{name:'债务信用评级', rate:'中国标普信用', range:'AA', year:'2021'},
{name:'债务信用评级', rate:'中国标普信用', range:'AA', year:'2021'},
{name:'债务信用评级', rate:'中国标普信用', range:'AA', year:'2021'}
],
gsjyList: [
{ name: '总资产', ico: require('@/assets/images/detail/overview/gsjy_ico1.png'), amount: '1699.7'},
{ name: '净资产', ico: require('@/assets/images/detail/overview/gsjy_ico2.png'), amount: '1699.7'},
{ name: '授信余额', ico: require('@/assets/images/detail/overview/gsjy_ico3.png'), amount: '1699.7'},
{ name: '营业收入', ico: require('@/assets/images/detail/overview/gsjy_ico4.png'), amount: '1699.7'},
{ name: '总负债', ico: require('@/assets/images/detail/overview/gsjy_ico5.png'), amount: '1699.7'}
],
}
},
created() {
},
mounted() {
this.companySwiper()
},
methods: {
companySwiper(){
new Swiper('.swiper-containers', {
slidesPerView: 4,
// 设置点击箭头
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
})
}
}
}
</script>
<style lang="scss" scoped>
.operations-container{
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
.part-swiper{
position: relative;
margin-top: 16px;
.swiper-containers{
width: calc(100% - 38px);
height: 96px;
margin-top: 8px;
margin-left: 25px;
overflow: hidden;
.swiper-slide{
.swiper-div{
width: calc(100% - 12px);
height: 96px;
background: url("~@/assets/images/detail/overview/swiper_bg.png") no-repeat;
background-size: 100% 100%;
.operations-title{
margin-right: 22px;
font-weight: bold;
font-size: 20px;
color: #0081FF;
padding: 24px 16px 0 16px;
span{
font-size: 16px;
}
}
.operations-info{
padding: 14px 16px 10px 16px;
justify-content: space-between;
font-size: 14px;
color: #416587;
span{
font-size: 12px;
img{
width: 10px;
height: 10px;
margin-right: 3px;
}
}
}
}
}
}
.swiper-button-prev, .swiper-button-next{
width: 16px;
height: 96px;
background: #F0F5FC;
top: 0;
margin-top: 0;
&.swiper-button-disabled{
opacity: 1;
color:#AAAAAA;
background: #F5F5F5;
}
i{
color: #AAAAAA;
}
&:hover i{
color:#667199;
}
&:after{
content: "";
}
}
}
.operations-list{
flex-wrap: wrap;
justify-content: space-between;
.list-item{
width: calc(20% - 12px);
height: 88px;
padding: 18px;
margin-top: 14px;
font-size: 14px;
color: #232323;
border: 1px solid #E2E7EE;
text-align: center;
.list-item-all{
justify-content: center;
img{
width: 24px;
height: 24px;
margin-right: 4px;
}
}
.list-item-amount{
padding-top: 6px;
font-weight: bold;
}
}
}
}
</style>
<template>
<div class="app-container">
商机查询
<div class="app-container part-container">
企业速览
</div>
</template>
<script>
export default {
name: 'Opportunity',
name: 'Overview',
data() {
return {
}
......@@ -19,5 +19,8 @@ export default {
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
}
</style>
<template>
<div class="app-container">
监控动态
<div class="app-container part-container">
企业速览
</div>
</template>
<script>
export default {
name: 'Trends',
name: 'Overview',
data() {
return {
}
......@@ -19,5 +19,8 @@ export default {
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
}
</style>
<template>
<div class="app-container part-container">
企业速览
</div>
</template>
<script>
export default {
name: 'Overview',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
}
</style>
<template>
<div class="app-container part-container">
企业速览
<div class="gsjy">
<Operations />
</div>
</div>
</template>
<script>
import Operations from "./component/operations";
export default {
name: 'Overview',
components: {
Operations
},
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.part-container{
margin: 0;
padding: 0;
.gsjy{
margin-top: 12px;
}
}
</style>
<template>
<div>
<el-card class="box-card noborder">
<div class="cardtitles">跟进记录</div>
<div class="records">
<div class="writeIn">
<div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png">
<div>新建一条跟进记录,如:周五上午预约客户上门拜访</div>
</div>
<div class="writting" v-if="isEdit == true">
<div class="wri_top">
<img src="@/assets/images/project/add_3.png">
<el-input placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div>
<div class="wr_bot">
<el-select v-model="value" class="w128" placeholder="拜访方式">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_1.png"></i>
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
<el-input v-model="value" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input>
<el-input v-model="value" placeholder="客户职位" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_3.png"></i>
</el-input>
<div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker class="w128"
v-model="value"
type="date"
placeholder="下次拜访时间">
</el-date-picker>
</div>
<div class="btn btn_primary h32 wc" :class="{'btn_disabled':value == ''}">完成</div>
</div>
</div>
</div>
<div class="recordlist">
<div class="rec_detail">
<div class="rec_time">
<i class="el-icon-time"></i>
<div>2018-04-03 10:20</div>
<div class="operate">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img src="@/assets/images/delete.png">
</div>
</div>
<div class="rec_con">
<div><strong>李力</strong> <span>(线下拜访)</span></div>
<div><span>上门拜访了交通局杨科长,客户对公司认可度很高,希望做进一步的高层对话。</span></div>
<div class="rec_text">
<span>拜访对象:杨洋</span>
<span>职位:科长</span>
<span>拜访时间:2008-12-08</span>
<span>下次拜访时间:2008-12-08</span>
</div>
</div>
</div>
<div class="rec_detail">
<div class="rec_time">
<i class="el-icon-time"></i>
<div>2018-04-03 10:20</div>
<div class="operate">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img src="@/assets/images/delete.png">
</div>
</div>
<div class="rec_con">
<div><strong>李力</strong> <span>(线下拜访)</span></div>
<div><span>上门拜访了交通局杨科长,客户对公司认可度很高,希望做进一步的高层对话。</span></div>
<div class="rec_text">
<span>拜访对象:杨洋</span>
<span>职位:科长</span>
<span>拜访时间:2008-12-08</span>
<span>下次拜访时间:2008-12-08</span>
</div>
</div>
</div>
</div>
</div>
<div class="delform">
<div class="words">是否删除该条记录</div>
<div>
<div class="btnsmall btn_primary h28">确定</div>
<div class="btnsmall btn_cancel h28">取消</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import "@/assets/styles/project.scss"
export default {
name: 'gjjl',
data(){
return{
isEdit:false,
value:''
}
},
methods:{
getEdit(){
this.isEdit = true;
this.value = ""
},
}
}
</script>
<style lang="scss" scoped>
.wc{
position: absolute;
right: 0;
bottom: 0;
}
.delform{
position: fixed; left:50%; top:50%; transform:translate(-50%,-50%)
}
</style>
<template>
<div>
<el-card class="box-card noborder">
<div class="cardtitles">跟进记录</div>
<div class="records">
<div class="writeIn">
<div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png">
<div>新建一条工作代办,如:周五上午预约客户上门拜访</div>
</div>
<div class="writting" v-if="isEdit == true">
<div class="wri_top">
<img src="@/assets/images/project/add_3.png">
<el-input placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div>
<div class="wr_bot">
<div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker
v-model="value"
type="date"
placeholder="待办时间">
</el-date-picker>
</div>
<el-input v-model="value" placeholder="拜访对象" style="width: 100px;">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/ico_2.png"></i>
</el-input>
<div class="btn btn_primary h32 wc" :class="{'btn_disabled':value == ''}">完成</div>
</div>
</div>
</div>
<div class="tasktitle"><strong>我的任务</strong><span>4条已逾期</span></div>
<div class="tasklist">
<div class="task_name">周二拜访交通局李主任</div>
<div class="task_con"><span>发起时间:2023-01-24</span><span>关联客户:<font class="wordprimary">重庆市交通局</font></span><span>完成时间:2023-0.-03</span></div>
<div class="select">未完成</div>
</div>
<div class="tasklist">
<div class="task_name">周二拜访交通局李主任</div>
<div class="task_con"><span>发起时间:2023-01-24</span><span>关联客户:<font class="wordprimary">重庆市交通局</font></span><span>完成时间:2023-0.-03</span></div>
<div class="select">未完成</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import "@/assets/styles/project.scss"
export default {
name: 'gjjl',
data(){
return{
isEdit:false,
value:''
}
},
methods:{
getEdit(){
this.isEdit = true;
this.value = ""
},
}
}
</script>
<style lang="scss" scoped>
.wc{
position: absolute;
right: 0;
bottom: 0;
}
.times{
width: 100px;
margin-right: 12px;
}
</style>
......@@ -155,40 +155,14 @@
<script>
import "@/assets/styles/project.scss"
export default {
name: 'xmgl',
name: 'jsnr',
data(){
return{
textarea:"",
nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签
tipsvalue:"",//标签填写内容
}
},
methods:{
//验证电话号码
isphone(value){
var regPartton = /1[3-8]+\d{9}/;
var regPartton1 = /^(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)$/;
if (!regPartton.test(value) && !regPartton1.test(value)) {
this.$message.error("请输入正确的电话");
} else {
}
},
//标签添加、删除
addtips(){
if(this.tipsvalue == "")
return false
if(this.tipslit.length>=30){
this.$message.error("最多能只能添加30个标签")
return false
}
this.tipslit.push(this.tipsvalue)
this.tipsvalue = ""
},
deltip(index){
this.tipslit.splice(index,1)
},
}
}
</script>
......
<template>
<div>
<el-card class="box-card noborder">
<div class="cardtitles">基本信息</div>
......@@ -121,7 +120,7 @@
<script>
import "@/assets/styles/project.scss"
export default {
name: 'xmgl',
name: 'lxr',
data(){
return{
dialogVisible:false,
......@@ -151,30 +150,6 @@
}
},
methods:{
//验证电话号码
isphone(value){
var regPartton = /1[3-8]+\d{9}/;
var regPartton1 = /^(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)$/;
if (!regPartton.test(value) && !regPartton1.test(value)) {
this.$message.error("请输入正确的电话");
} else {
}
},
//标签添加、删除
addtips(){
if(this.tipsvalue == "")
return false
if(this.tipslit.length>=30){
this.$message.error("最多能只能添加30个标签")
return false
}
this.tipslit.push(this.tipsvalue)
this.tipsvalue = ""
},
deltip(index){
this.tipslit.splice(index,1)
},
//翻页
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
......@@ -195,6 +170,7 @@
width: 102px;
}
.popups .popform .popbot{padding-right: 47px;}
.img.img1{
margin-right: 8px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
......
<template>
<div>
<el-card class="box-card noborder">
<div class="cardtitles">相关企业</div>
<div class="searchbtns">
<el-select class="select" placeholder="企业角色">
<option label="111" value="222"></option>
</el-select>
<div class="searchInput">
<el-input type="text" placeholder="输入关键词查询"></el-input>
<div class="btn">搜索</div>
</div>
<div class="btn btn_primary h32 b3" @click="opennew"><div class="img img1"></div>添加相关企业</div>
</div>
<div class="document">
<el-table
:data="tableData"
style="width: 100%"
>
<template slot="empty">
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div>
</div>
</template>
<el-table-column
prop="date"
label="企业名称"
>
<template slot-scope="scope">
<div class="wordprimary">集团投标常用资料</div>
</template>
</el-table-column>
<el-table-column
prop="name"
label="对接深度"
>
</el-table-column>
<el-table-column
prop="name"
label="企业角色"
sortable
width="">
</el-table-column>
<el-table-column
prop="name"
label="负责人"
width="">
</el-table-column>
</el-table>
<div class="tables">
<div class="bottems">
<el-pagination
background
:page-size="20"
:current-page="1"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="1000">
</el-pagination>
</div>
</div>
</div>
<el-dialog
class="popups"
:visible.sync="dialogVisible"
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>新建相关企业</span>
</div>
<div class="types">
<div :class="{'on':types==1}" @click="types=1"><i></i>业主单位</div>
<div :class="{'on':types==2}" @click="types=2"><i></i>合作伙伴</div>
<div :class="{'on':types==3}" @click="types=3"><i></i>竞争对手</div>
</div>
<div class="popform">
<div class="popbot" style="padding-right: 0">
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32" @click="hzhbVisible=true">下一步</div>
</div>
</div>
</el-dialog>
<el-dialog
class="popups"
:visible.sync="hzhbVisible"
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>新建相关企业-{{types==1?"业主单位":""}}{{types==2?"合作伙伴":""}}{{types==3?"竞争对手":""}}</span>
</div>
<div class="popform i">
<div class="row">
<span class="left"><i>*</i>企业名称:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row" v-if="types == 1">
<span class="left">对接深度:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row" v-if="types == 2">
<span class="left">合作阶段:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row" v-if="types == 3">
<span class="left">竞争力度:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">企业角色:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">负责人:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">添加</div>
</div>
</div>
</el-dialog>
</el-card>
</div>
</template>
<script>
import "@/assets/styles/project.scss"
export default {
name: 'zlwd',
data(){
return{
types:1,
dialogVisible:false,
hzhbVisible:false,
textarea:"",
nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签
tipsvalue:"",//标签填写内容
tableData: [
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
]
}
},
methods:{
//翻页
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
cancel(){
this.dialogVisible = false
},
//打开新建窗口
opennew(){
this.dialogVisible = true
},
}
}
</script>
<style lang="scss" scoped>
.w102{
width: 102px;
}
.img.img1{
margin-right: 4px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
}
.img.img2{
margin-right: 4px;
background: url('../../../../../src/assets/images/upload.png')no-repeat center center;
}
.box-card{
position: relative;
}
</style>
......@@ -160,7 +160,7 @@
<script>
import "@/assets/styles/project.scss"
export default {
name: 'xmgl',
name: 'xmsl',
data(){
return{
nowedit:-1,//当前正在编辑的文本
......
<template>
<div>
<el-card class="box-card noborder">
<div class="cardtitles">资料文档</div>
<div class="searchbtns">
<div class="searchInput">
<el-input type="text" placeholder="输入关键词查询"></el-input>
<div class="btn">搜索</div>
</div>
<div class="btn btn_primary h32 b1"><div class="img img1"></div>新建文件夹</div>
<div class="btn btn_default h32 b2"><div class="img img2"></div>上传</div>
</div>
<div class="document">
<el-table
:data="tableData"
style="width: 100%"
>
<template slot="empty">
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div>
</div>
</template>
<el-table-column
prop="date"
label="文件名称"
>
<template slot-scope="scope">
<div>
<img class="img" src="@/assets/images/folder.png">
<!--<img class="img" src="@/assets/images/word.png">-->
<!--<img class="img" src="@/assets/images/pdf.png">-->
<!--<img class="img" src="@/assets/images/excel_1.png">-->
<span>集团投标常用资料</span>
</div>
</template>
</el-table-column>
<el-table-column
prop="name"
label="创建人"
>
</el-table-column>
<el-table-column
prop="name"
label="更新时间"
sortable
width="">
</el-table-column>
</el-table>
<div class="tables">
<div class="bottems">
<el-pagination
background
:page-size="20"
:current-page="1"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="1000">
</el-pagination>
</div>
</div>
</div>
<el-dialog
class="popups"
:visible.sync="dialogVisible"
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>重庆市轨道交通3号线二期工程4标段施工总承包</span>
</div>
<div class="popform">
<div class="row">
<span class="left">联系人姓名:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系人角色:</span>
<el-select placeholder="请选择">
<el-option label="cccc" value="11"></el-option>
<el-option label="cccc" value="121"></el-option>
</el-select>
</div>
<div class="row">
<span class="left">联系人职位:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系人公司/机关:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">内部维护人:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="row">
<span class="left">联系方式:</span>
<el-input type="text" placeholder="请输入"></el-input>
</div>
<div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32">保存</div>
</div>
</div>
</el-dialog>
</el-card>
</div>
</template>
<script>
import "@/assets/styles/project.scss"
export default {
name: 'zlwd',
data(){
return{
dialogVisible:false,
textarea:"",
nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签
tipsvalue:"",//标签填写内容
tableData: [
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
]
}
},
methods:{
//翻页
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
cancel(){
this.dialogVisible = false
},
//打开新建窗口
opennew(){
this.dialogVisible = true
},
}
}
</script>
<style lang="scss" scoped>
.w102{
width: 102px;
}
.img.img1{
margin-right: 4px;
background: url('../../../../../src/assets/images/project/add_2.png')no-repeat center center;
}
.img.img2{
margin-right: 4px;
background: url('../../../../../src/assets/images/upload.png')no-repeat center center;
}
.box-card{
position: relative;
}
</style>
......@@ -71,6 +71,14 @@
<jsnr v-if="thistag == 'jsnr'"></jsnr>
<!--联系人-->
<lxr v-if="thistag == 'lxr'"></lxr>
<!--跟进记录-->
<gjjl v-if="thistag == 'gjjl'"></gjjl>
<!--工作待办-->
<gzdb v-if="thistag == 'gzdb'"></gzdb>
<!--资料文档-->
<zlwd v-if="thistag == 'zlwd'"></zlwd>
<!--相关企业-->
<xgqy v-if="thistag == 'xgqy'"></xgqy>
</div>
</div>
</template>
......@@ -80,9 +88,13 @@
import xmsl from './component/xmsl.vue'
import jsnr from './component/jsnr.vue'
import lxr from './component/lxr.vue'
import gjjl from './component/gjjl.vue'
import gzdb from './component/gzdb.vue'
import zlwd from './component/zlwd.vue'
import xgqy from './component/xgqy.vue'
export default {
name: 'detail',
components: {xmsl,jsnr,lxr},
components: {xmsl,jsnr,lxr,gjjl,gzdb,zlwd,xgqy},
data(){
return {
schedulelist: ['立项审批','招标计划','招标公告','开标阶段','中标结果'],
......@@ -93,10 +105,11 @@
{tag:'jsnr',name:'建设内容'},
{tag:'lxr',name:'联系人'},
{tag:'gjjl',name:'跟进记录'},
{tag:'gzdb',name:'工作代办'},
{tag:'gzdb',name:'工作待办'},
{tag:'zlwd',name:'资料文档'},
{tag:'xgqy',name:'相关企业'},
],
thistag:'lxr',
thistag:'xgqy',
islock:true,//仅自己可见
}
},
......@@ -119,18 +132,6 @@
</script>
<style lang="scss" scoped>
.app-container{
padding: 0;
}
.miantitle{
color: #232323;
font-size: 12px;
margin: 12px 24px;
>span{
opacity: 0.4;
&:last-child{opacity:0.8}
}
}
.head{
.titles{
line-height: 31px;
......
......@@ -331,10 +331,6 @@ export default {
}
</script>
<style lang="scss" scoped>
.app-container{
padding: 0;
}
.noborder{
position: relative;
}
......@@ -484,21 +480,6 @@ export default {
}
.det-tips{
padding: 8px 0 ;
.tips{
display: inline-block;
padding: 4px 8px;
border-radius: 2px;
font-size: 12px;
margin-right: 8px;
&.tip1{
background-color: #E4F3FD;
color: #41A1FD;
}
&.tip2{
background-color: #F3F3FF;
color: #8491E8;
}
}
}
.det-contets{
padding: 4px 0 16px;
......
<template>
<div class="content">
<div class="content_item">
<div class="label">项目名称</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入项目名称关键字" v-model="ename" @input="enamebtn('ename',ename)"></el-input>
<template v-if="ename">
<span v-for=" (item,k) in enameQueryTypeList" :key="k">
<el-radio v-model="enameQueryType" :label="item.key">{{item.value}}</el-radio>
</span>
</template>
</div>
</div>
<div class="content_item">
<div class="label">项目主体</div>
<div class="content_right">
<div class="item_ckquery_list" >
<div class="ckquery_list_right">
<el-input @input="registerIpt(registerCount)" ref="inp"
v-model="registerCount" autocomplete="off" type="text"
class="register_count_ipt" placeholder="请输入企业名称">
<el-dropdown trigger="click" slot="prepend" style="cursor:pointer;"
@command="changeCommand">
<span class="el-dropdown-link">
{{countType.value}}<i class="el-icon-caret-bottom"></i>
</span>
<el-dropdown-menu class="default_header_dropdown" slot="dropdown">
<el-dropdown-item v-for="(item,k) in countTypelist" :key="k" :command="item">{{item.value}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-input>
</div>
</div>
</div>
</div>
<div class="content_item">
<div class="label">项目地区</div>
<div class="content_right">
<div class="select-popper">
<div class=" select-caret" :class="addressType.length>0?'select-active':''">
<span>
项目地区{{addressType.length>0?(addressType.length+'项'):''}}
</span>
<i class="el-icon-caret-bottom"></i>
</div>
<el-cascader ref="address" class="cascader-region select-location" @input="addressListbtn" v-model="addressType"
:options="addressList" :props="props" collapse-tags></el-cascader>
</div>
</div>
</div>
<div class="content_item">
<div class="label">项目类型</div>
<div class="content_right">
<div class="content-projecttype">
<template v-for="(item,i) in projectTypeList">
<span class="projecttype" :class="item.status?'activetype':''">
{{item.value}}
</span>
</template>
</div>
</div>
</div>
<div class="content_item content_item_padding0">
<div class="geduan">
</div>
</div>
<div class="content_item content_item_padding0">
<div class="search-new">
<span>查询</span>
<span>重置</span>
</div>
</div>
</div>
</template>
<script>
import jsk_data from '../../../../../public/jsk.json';
export default {
name: 'debtProject',
data() {
return {
ename:'',
enameQueryTypeList: [{
key: 'and',
status: false,
value: '模糊搜索',
keyid: 'businessScope'
},
{
key: 'or',
status: true,
value: '精准匹配',
keyid: 'businessScope'
},
],
enameQueryType: 'or',
registerCount:'',
countTypelist: [{
key: '1',
value: '项目主体'
},
{
key: '2',
value: '主管部门'
},
{
key: '3',
value: '实施单位'
}
],
countType: {
key: '3',
value: '实施单位'
},
addressList: [],
addressType: [],
props: {
multiple: true,
expandTrigger: "hover",
value: 'id'
},
projectTypeList: [
{
status: true,
value: '不限',
keyid: 'projectType',
key: '不限'
},
{
value: '房屋建筑工程',
status: false,
keyid: 'projectType',
key: '房屋建筑工程'
},
{
value: '市政基础设施工程',
status: false,
keyid: 'projectType',
key: '市政基础设施工程'
},
{
value: '其他',
status: false,
keyid: 'projectType',
key: '其他'
},
{
value: '空白',
status: false,
keyid: 'projectType',
key: '空白'
},
],
projectTypeText: ['不限'],
arrList:[]
}
},
created() {
this.addressListfn();
},
methods: {
// 经营范围
enamebtn(key, text) {
var arr = this.ename.trim().split(' ')
for (var i = 0; i < arr.length; i++) {
if (!arr[i]) {
arr.splice(i, 1)
i--
}
}
var data = {
title:'项目名称:',
key: arr,
value: arr,
keyid: key
}
if (text.trim()) {
var n = -1;
for (let x = 0; x < this.arrList.length; x++) {
if (this.arrList[x].keyid == data.keyid) {
n = x;
}
}
if (n == -1) {
this.arrList.push(data)
} else {
this.arrList[n] = data;
}
} else {
for (let x = 0; x < this.arrList.length; x++) {
if (this.arrList[x].keyid == data.keyid) {
this.arrList.splice(x, 1);
x--;
}
}
}
},
registerIpt(registerCount){
},
changeCommand(str) {
this.countType=str;
},
addressListfn() {
var searchid;
if(this.$route.name=='search-combinedYN'){
searchid='530000'
}else{
searchid=''
}
var str = [];
for (let x = 0; x < 3; x++) {
for (let i = 0; i < jsk_data.length; i++) {
if (jsk_data[i].regionLevel == x + 1 && x + 1 == 1) {
if(searchid){
if (jsk_data[i].id == searchid) {
str.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: jsk_data[i].id == 900000 ? undefined : [],
});
}
}else{
str.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: jsk_data[i].id == 900000 ? undefined : [],
});
}
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 2 && str) {
for (let j = 0; j < str.length; j++) {
if (str[j].id == jsk_data[i].parentId) {
str[j].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
children: [],
});
}
}
} else if (jsk_data[i].regionLevel == x + 1 && x + 1 == 3) {
for (let j = 0; j < str.length; j++) {
if (str[j].children) {
for (let k = 0; k < str[j].children.length; k++) {
if (str[j].children[k].id == jsk_data[i].parentId) {
str[j].children[k].children.push({
id: jsk_data[i].id,
label: jsk_data[i].regionName,
short: jsk_data[i].short,
value: jsk_data[i].parentId,
});
}
}
}
}
}
}
}
this.addressList = str;
},
// 项目属地
addressListbtn() {
for (let i = 0; i < this.arrList.length; i++) {
if (this.arrList[i].keyid == 'address') {
this.arrList.splice(i, 1);
i--;
}
}
let arr = (this.$refs.address.getCheckedNodes())
let provinceCode = [],
cityCode = [],
countyCode = [];
let province = [],
city = [],
county = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
}
}
for (let j = 0; j < jsk_data.length; j++) {
if (provinceCode.length > 0) {
for (let i = 0; i < provinceCode.length; i++) {
if (provinceCode[i] == jsk_data[j].id) {
province.push({
value: jsk_data[j].regionName,
key: provinceCode[i]
})
}
}
}
if (cityCode.length > 0) {
for (let i = 0; i < cityCode.length; i++) {
if (cityCode[i] == jsk_data[j].id) {
city.push({
value: jsk_data[j].regionName,
key: cityCode[i]
})
}
}
}
if (countyCode.length > 0) {
for (let i = 0; i < countyCode.length; i++) {
if (countyCode[i] == jsk_data[j].id) {
county.push({
value: jsk_data[j].regionName,
key: countyCode[i]
})
}
}
}
}
if (province.length > 0 || city.length > 0 || county.length > 0) {
let arrlist = [];
if (province.length > 0) {
for (let i in province) {
arrlist.push(province[i].value)
}
}
if (city.length > 0) {
for (let i in city) {
arrlist.push(city[i].value)
}
}
if (county.length > 0) {
for (let i in county) {
arrlist.push(county[i].value)
}
}
console.log(this.addressType);
this.arrList.push({
value: arrlist,
keyid: 'address',
provinceCode: provinceCode,
cityCode: cityCode,
countyCode: countyCode,
title: '项目属地:',
key: '',
addressType:this.addressType
})
}
// this.landMarketDto = obj
},
}
}
</script>
<style lang="scss" scoped>
.content{
padding: 0px 16px;
background: #FFFFFF;
.content_item{
padding-top: 12px;
display: flex;
align-items: center;
.label{
width: 84px;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
.content_right{
.ename_input{
width: 640px;
margin-right: 20px;
}
}
.item_ckquery_list {
display: flex;
}
.item_ckquery_list .el-input__icon {
position: relative;
top: 1px;
}
.ckquery_list_right {
width: 640px;
}
.register_count_ipt{
margin-left: 0px;
}
.register_count_ipt .el-input__inner{
width: 174px;
}
::v-deep .el-input-group__prepend{
padding: 0 8px;
}
.content-projecttype{
display: flex;
align-items: center;
justify-content: center;
.projecttype{
font-weight: 400;
color: #232323;
padding: 1px 5px;
margin-right: 4px;
cursor: pointer;
border-radius: 3px 3px 3px 3px;
font-size: 14px;
}
.projecttype:first-child{
padding-left: 0px;
}
.projecttype:hover{
background: #F3F4F5;
padding: 1px 5px;
}
.activetype{
background: #F3F4F5;
padding: 1px 5px !important;
}
}
}
.content_item_padding0{
padding: 0;
}
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<div class="content">
<div class="combined-title">
<div class="title-right">
<div class="tab">
<div style="position:relative" v-for="(itme,i) in personnelList"
:class="itme.status==true?'active':'' " :key='i' @click="personnelListbtn(i)">
<p>{{itme.value}}</p>
</div>
</div>
<p class="solid"></p>
</div>
</div>
</div>
<debtProject v-if="personnelHerf=='debtProject'" />
</div>
</template>
<script>
import debtProject from "./components/debtProject/index.vue";
import "@/assets/styles/public.css";
export default {
name: 'radar',
components: { debtProject },
data() {
return {
// tablist
personnelList: [{
key: 'debtProject',
status: true,
value: '企业专项债项目',
},
{
key: 'Builder',
status: false,
value: '土地交易',
},
{
key: 'KeyPersonnel',
status: false,
value: '拟建项目',
},
{
key: 'KeyPersonnel',
status: false,
value: '招标计划',
},
{
key: 'KeyPersonnel',
status: false,
value: '标讯pro',
},
{
key: 'KeyPersonnel',
status: false,
value: '公招标讯',
},
{
key: 'KeyPersonnel',
status: false,
value: '开标记录',
},
],
personnelHerf:'debtProject'
}
},
created() {},
methods: {
personnelListbtn(index) {
for (var i = 0; i < this.personnelList.length; i++) {
this.personnelList[i].status = false;
}
this.personnelList[index].status = true;
},
}
}
</script>
<style lang="scss" scoped>
.app-container {
margin: 12px 24px;
padding: 0;
}
.content{
padding: 0px 16px;
background: #FFFFFF;
}
.app-container .combined-title {
display: flex;
padding-top: 16px;
align-items: center
}
.app-container .combined-title .title-icon {
display: inline-block;
width: 6px;
height: 26px;
background: #0081FF;
border-radius: 0px 0px 0px 0px;
opacity: 1;
margin-right: 18px;
}
.app-container .combined-title .title-right {
display: flex;
width: 100%;
position: relative;
height: 40px;
}
.app-container .combined-title .title-right .title-text {
font-size: 16px;
font-weight: bold;
color: #333333;
line-height: 40px;
}
.app-container .combined-title .title-right .title-add {
color: #0081FF;
cursor: pointer;
position: absolute;
right: 0;
}
.app-container .combined-title .title-right .title-addyj {
top: 5px;
}
.app-container .combined-title .title-right .title-add .add-img {
position: relative;
top: -1px;
margin-right: 6px;
}
.app-container .combined-title .title-right .solid {
width: 100%;
height: 1px;
background-color: #EEEEEE;
position: absolute;
bottom: -1px;
left: 0;
z-index: 1;
}
.tab {
display: flex;
z-index: 2;
}
.tab_p_32 {
padding-right: 32px;
padding-left: 32px;
}
.tab div {
cursor: pointer;
color: #666666;
font-size: 16px;
text-align: center;
margin-right: 32px;
line-height: 40px;
}
.tab div p {
display: inline-block;
padding: 0px;
}
.tab div .logo {
color: #fff;
font-weight: 400;
font-size: 10px;
position: absolute;
top: -6px;
right: -24px;
display: inline-block;
line-height: 14px;
padding: 1px 2px;
text-align: center;
background: #3663DE;
border-radius: 2px 2px 2px 2px;
}
.tab div .triangle {
display: inline-block;
width: 0px;
height: 0px;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-top: 4px solid #3663DE;
position: absolute;
top: 9.5px;
right: -3px;
}
.tab .active {
color: #0081FF;
}
.tab .active .triangle {
border-top: 4px solid #0081FF;
}
.tab .active .logo {
background: #0081FF;
}
.tab .active p {
border-bottom: 2px solid #0081FF;
font-weight: bold;
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
监控动态
</div>
</template>
<script>
export default {
name: 'Trends',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
</style>
package com.dsk.system.domain;
import lombok.Data;
/**
* @author lxl
* @Description:
* @Date 2023/5/19 下午 5:58
**/
@Data
public class BusinessAddDto {
/**
* 项目名称
*/
private String projectName;
/**
* 用户id
*/
private Integer userId;
/**
* 项目类型
*/
private String projectType;
/**
* 项目类别
*/
private String projectCategory;
/**
* 投资估算
*/
private String investmentAmount;
/**
* 项目阶段
*/
private String projectStage;
/**
* 业主单位
*/
private String ownerCompany;
/**
* 单位id
*/
private Integer companyId;
/**
* 可见范围
*/
private Integer isPrivate;
/**
* 客户id
*/
private String customerId;
public Double getInvestmentAmount() {
return Double.parseDouble(investmentAmount);
}
}
package com.dsk.system.domain;
import lombok.Data;
/**
* @author lxl
* @Description:
* @Date 2023/5/13 下午 3:58
**/
@Data
public class BusinessIdDto {
/**
* 项目id
*/
private Integer businessId;
/**
* 项目标签名称
*/
private String label;
}
package com.dsk.system.domain;
import lombok.Data;
/**
* @author lxl
* @Description:
* @Date 2023/5/16 上午 9:10
**/
@Data
public class BusinessListDto {
/**
* 项目名称
*/
private String projectName;
/**
* 用户id
*/
private Integer userId;
/**
* 企业id
*/
private Integer deptId;
/**
* 省id
*/
private Integer provinceId;
/**
* 市id
*/
private Integer cityId;
/**
* 区id
*/
private Integer districtId;
/**
* 项目类型
*/
private String projectType;
/**
* 投资估算
*/
private String investmentAmount;
/**
* 项目阶段
*/
private String projectStage;
/**
* 最小金额
*/
private String minAmount;
/**
* 最大金额
*/
private String maxAmount;
/**
* 业主单位
*/
private String ownerCompany;
}
package com.dsk.system.domain.customer;
import com.baomidou.mybatisplus.annotation.*;
import com.dsk.common.annotation.Excel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.context.annotation.Import;
import java.io.Serializable;
import java.util.Date;
......@@ -30,6 +32,7 @@ public class Customer implements Serializable {
/**
* 客户名称(企业名称)
*/
@Excel(name = "企业名称")
private String companyName;
/**
* 法定代表人
......
package com.dsk.system.domain.customer.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 客户合作情况筛选对象
* @author lcl
* @create 2023/5/16
*/
@Data
public class CustomerBusinessSearchDto implements Serializable {
/**
* 企业id
*/
private String customerId;
/**
* 企业id
*/
private Long userId;
/**
* 项目阶段
*/
private String projectStage;
/**
* 项目状态
*/
private Integer status;
}
package com.dsk.system.domain.customer.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 客户合作情况列表对象
*
* @author lcl
* @create 2023/5/22
*/
@Data
public class CustomerBusinessListVo implements Serializable {
/**
* 项目id
*/
private Integer id;
/**
* 项目名称
*/
private String projcetName;
/**
* 项目阶段
*/
private String projectStage;
/**
* 投资金额
*/
private String investmentAmount;
/**
* 状态
*/
private Integer status;
}
......@@ -37,7 +37,11 @@ public class CustomerListVo {
/**
* 注册资本(字符串)
*/
private String registerCapitalStr;
private String registerCapital;
/**
* 社会统一信用代码
*/
private String creditCode;
/**
* 企业性质
*/
......
package com.dsk.system.domain.vo;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import lombok.Data;
import java.util.List;
/**
* @author lxl
* @Description:
* @Date 2023/5/22 下午 5:19
**/
@Data
public class BusinessBrowseVo {
/**
* 项目名称
*/
private String projectName;
/**
* 项目名称
*/
private Integer isPrivate;
/**
* 项目类型
*/
private String projectType;
/**
* 项目类别
*/
private String projectCategory;
/**
* 投资估算
*/
private Double investmentAmount;
/**
* 省
*/
private String provinceName;
/**
* 市
*/
private String cityName;
/**
* 区
*/
private String districtName;
/**
* 商务团队
*/
private String team;
/**
* 项目阶段
*/
private String projectStage;
/**
* 项目级别
*/
private String projectLevel;
/**
* 项目标签
*/
private List<String> labelList;
/**
* 关键企业
*/
private List<BusinessRelateCompany> relateCompany;
/**
* 联系人统计
*/
private Integer contactsCount;
/**
* 跟进记录统计
*/
private Integer followRecordCount;
/**
* 工作待办统计
*/
private Integer backlogCount;
/**
* 相关企业统计
*/
private Integer relateCompanyCount;
}
package com.dsk.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @author lxl
* @Description:
* @Date 2023/5/19 下午 2:17
**/
@Data
public class BusinessListVo {
/**
* 项目id
*/
private Integer id;
/**
* 项目名称
*/
private String projectName;
/**
* 省
*/
private Integer provinceName;
/**
* 市
*/
private Integer cityName;
/**
* 区
*/
private Integer districtName;
/**
* 投资估算
*/
private Double investmentAmount;
/**
* 业主单位
*/
private String ownerCompany;
/**
* 最后跟进时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date followTime;
/**
* 跟进用户昵称
*/
private String nickName;
/**
* 项目标签
*/
private String label;
}
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class EnterpriseBussinessService {
private static final Logger log = LoggerFactory.getLogger(EnterpriseService.class);
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public TableDataInfo clientPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo clientProjectPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo tenderPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R tenderDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo supplierPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo supplierProjectPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R projectDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/projectDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo oftenAgencyPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/oftenAgencyPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo bidCooperatePage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/bidCooperatePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo historySendPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/historySendPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R historySendProvince(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/historySendProvince", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
}
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.dtos.Page;
import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import static com.dsk.common.utils.PageUtils.startPage;
@Service
public class EnterpriseCreditService {
private static final Logger log = LoggerFactory.getLogger(EnterpriseService.class);
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public TableDataInfo penalizePage(EnterpriseCreditPenalizePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/penalizePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R penalizeReasonType(EnterpriseCreditPenalizeReasonTypeBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/penalizeReasonType", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo abnormalPage(EnterpriseCreditAbnormalPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/abnormalPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R abnormalYears(EnterpriseCreditAbnormalYearsBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/abnormalYears", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo executedPersonsPage(EnterpriseCreditExecutedPersonsPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/executedPersonsPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo executedPage(EnterpriseCreditExecutedPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/executedPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo lawsuitsPage(EnterpriseCreditLawsuitsPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/lawsuitsPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R lawsuitsCauseAction(EnterpriseCreditLawsuitsCauseActionBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/lawsuitsCauseAction", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R lawsuitsRole(EnterpriseCreditLawsuitsRoleBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/lawsuitsRole", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo noticesPage(EnterpriseCreditNoticePageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R noticesType(EnterpriseCreditNoticeTypeBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesType", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R noticesRole(EnterpriseCreditNoticeRoleBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesRole", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R noticesCaseReason(EnterpriseCreditNoticeCaseReasonBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/noticesCaseReason", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo kaitingPage(EnterpriseCreditKaitingPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/kaitingPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R kaitingCauseAction(EnterpriseCreditKaitingCauseActionBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/kaitingCauseAction", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R kaitingPureRole(EnterpriseCreditKaitingPureRoleBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterpriseCredit/kaitingPureRole", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
}
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class EnterpriseProjectService {
private static final Logger log = LoggerFactory.getLogger(EnterpriseService.class);
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public TableDataInfo landTransactionPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landTransactionPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R landUse(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landUse", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R landDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/landDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo approvalProjectPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R approvalInfoDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalInfoDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo approvalExaminePage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalExaminePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo approvalMarketingPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/approvalMarketingPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo specialDebtPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R specialDebtDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/specialDebtDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo bidNoticePage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R bidNoticeTenderStage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeTenderStage", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R bidNoticeProvince(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProvince", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R bidNoticeDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo bidPlanPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidPlanPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R bidPlanDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidPlanDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo bidNoticeProPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R bidNoticeProDetail(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bidNoticeProDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo creditXzxkPage(Map<String, Object> body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/creditXzxkPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
}
......@@ -3,6 +3,7 @@ package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -55,19 +56,19 @@ public class EnterpriseService {
}
//todo 新数据,待入库
public R partners(EnterprisePartnersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/partners", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
public TableDataInfo partners(EnterprisePartnersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/partners", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R investment(EnterpriseInvestmentBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
public TableDataInfo investment(EnterpriseInvestmentBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R affiliates(EnterpriseAffiliatesBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/affiliates", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
public TableDataInfo affiliates(EnterpriseAffiliatesBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/affiliates", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R bidNoticePage(EnterpriseBidNoticePageBody body) throws Exception {
......@@ -98,28 +99,28 @@ public class EnterpriseService {
return BeanUtil.toBean(map, R.class);
}
public R dynamicPage(EnterpriseDynamicPageBody body) throws Exception {
public TableDataInfo dynamicPage(EnterpriseDynamicPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/jsk/enterprise/dynamic", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
return dskOpenApiUtil.responsePage(map);
}
public R icInfo(EnterpriseIcInfoBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/icInfo", BeanUtil.beanToMap(body, false, false));
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/icInfo", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R changeInfo(EnterpriseChangeInfoBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/changeInfo", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
public TableDataInfo changeInfo(EnterpriseChangeInfoBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/changeInfo", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R keymembers(EnterpriseKeymembersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/keymembers", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
public TableDataInfo keymembers(EnterpriseKeymembersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/keymembers", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R bestStockPage(EnterpriseKeymembersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
public TableDataInfo bestStockPage(EnterpriseKeymembersBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBodyLocal("/operate/enterprise/bestStockPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
}
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessBacklog;
import java.util.List;
/**
* 项目工作待办Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
public interface BusinessBacklogMapper
{
/**
* 查询项目工作待办
*
* @param id 项目工作待办主键
* @return 项目工作待办
*/
public BusinessBacklog selectBusinessBacklogById(Long id);
/**
* 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办集合
*/
public List<BusinessBacklog> selectBusinessBacklogList(BusinessBacklog businessBacklog);
/**
* 新增项目工作待办
*
* @param businessBacklog 项目工作待办
* @return 结果
*/
public int insertBusinessBacklog(BusinessBacklog businessBacklog);
/**
* 修改项目工作待办
*
* @param businessBacklog 项目工作待办
* @return 结果
*/
public int updateBusinessBacklog(BusinessBacklog businessBacklog);
/**
* 删除项目工作待办
*
* @param id 项目工作待办主键
* @return 结果
*/
public int deleteBusinessBacklogById(Long id);
/**
* 批量删除项目工作待办
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessBacklogByIds(Long[] ids);
}
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessContacts;
import java.util.List;
/**
* 项目联系人Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
public interface BusinessContactsMapper
{
/**
* 查询项目联系人
*
* @param id 项目联系人主键
* @return 项目联系人
*/
public BusinessContacts selectBusinessContactsById(Long id);
/**
* 查询项目联系人列表
*
* @param businessContacts 项目联系人
* @return 项目联系人集合
*/
public List<BusinessContacts> selectBusinessContactsList(BusinessContacts businessContacts);
/**
* 新增项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public int insertBusinessContacts(BusinessContacts businessContacts);
/**
* 修改项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public int updateBusinessContacts(BusinessContacts businessContacts);
/**
* 删除项目联系人
*
* @param id 项目联系人主键
* @return 结果
*/
public int deleteBusinessContactsById(Long id);
/**
* 批量删除项目联系人
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessContactsByIds(Long[] ids);
}
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import java.util.List;
/**
* 项目跟进记录Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
public interface BusinessFollowRecordMapper
{
/**
* 查询项目跟进记录
*
* @param id 项目跟进记录主键
* @return 项目跟进记录
*/
public BusinessFollowRecord selectBusinessFollowRecordById(Long id);
/**
* 分页查询项目跟进记录列表
*
* @param businessFollowRecord 项目跟进记录
* @return 项目跟进记录集合
*/
public List<BusinessFollowRecord> businessFollowRecordPaging(BusinessFollowRecord businessFollowRecord);
/**
* 根据项目id查询项目跟进记录
*
* @param businessId 项目id
* @return 项目跟进记录集合
*/
public List<BusinessFollowRecord> selectBusinessFollowRecordList(Integer businessId);
/**
* 新增项目跟进记录
*
* @param businessFollowRecord 项目跟进记录
* @return 结果
*/
public int insertBusinessFollowRecord(BusinessFollowRecord businessFollowRecord);
/**
* 修改项目跟进记录
*
* @param businessFollowRecord 项目跟进记录
* @return 结果
*/
public int updateBusinessFollowRecord(BusinessFollowRecord businessFollowRecord);
/**
* 删除项目跟进记录
*
* @param id 项目跟进记录主键
* @return 结果
*/
public int deleteBusinessFollowRecordById(Long id);
/**
* 批量删除项目跟进记录
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessFollowRecordByIds(Long[] ids);
}
package com.dsk.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.common.core.domain.entity.BusinessInfo;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
import com.dsk.system.domain.vo.BusinessBrowseVo;
import com.dsk.system.domain.vo.BusinessListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 项目详情Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
@Mapper
public interface BusinessInfoMapper extends BaseMapper<BusinessInfo>
{
/**
* 查询项目详情
*
* @param id 项目详情主键
* @return 项目详情
*/
public BusinessInfo selectBusinessInfoById(Integer id);
/**
* 查询项目建设内容
*
* @param id 项目详情主键
* @return
*/
BusinessInfo getConstruction(Integer id);
/**
* 查询所有项目名称(支持模糊查询)
* @return
*/
List<String> selectProjectName(BusinessListDto dto);
/**
* 查询项目详情列表
*
* @param dto 项目详情
* @return 项目详情集合
*/
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto);
/**
* 新增项目详情
*
* @param businessInfo 项目详情
* @return 结果
*/
public int insertBusinessInfo(BusinessInfo businessInfo);
/**
* 修改项目详情
*
* @param businessInfo 项目详情
* @return 结果
*/
public int updateBusinessInfo(BusinessInfo businessInfo);
/**
* 删除项目详情
*
* @param id 项目详情主键
* @return 结果
*/
public int deleteBusinessInfoById(Long id);
/**
* 批量删除项目详情
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessInfoByIds(Long[] ids);
/**
* 根据项目统计
* @param business
* @return
*/
BusinessBrowseVo selectTotal(Integer business);
int selectCountByStatusAndCustomerId(@Param("status") Integer status,@Param("customerId") String customerId);
List<CustomerBusinessListVo> selectCustomerBusinessList(CustomerBusinessSearchDto dto);
}
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.system.domain.BusinessIdDto;
import java.util.List;
/**
* 项目标签Mapper接口
*
* @author ruoyi
* @date 2023-05-17
*/
public interface BusinessLabelMapper
{
/**
* 查询项目标签
*
* @param id 项目标签主键
* @return 项目标签
*/
public BusinessLabel selectBusinessLabelById(Long id);
/**
* 查询项目标签列表
*
* @param businessLabel 项目标签
* @return 项目标签集合
*/
public List<BusinessLabel> selectBusinessLabelList(BusinessLabel businessLabel);
/**
* 新增项目标签
*
* @param businessLabel 项目标签
* @return 结果
*/
public int insertBusinessLabel(BusinessLabel businessLabel);
/**
* 修改项目标签
*
* @param businessLabel 项目标签
* @return 结果
*/
public int updateBusinessLabel(BusinessLabel businessLabel);
/**
* 删除项目标签
*
* @param dto 项目主键
* @return 结果
*/
public int deleteBusinessLabelById(BusinessIdDto dto);
/**
* 批量删除项目标签
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessLabelByIds(Long[] ids);
}
package com.dsk.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.system.domain.customer.CustomerDecisionChain;
import java.util.List;
/**
* 项目关联单位Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
public interface BusinessRelateCompanyMapper extends BaseMapper<BusinessRelateCompany>
{
/**
* 查询项目关联单位
*
* @param id 项目关联单位主键
* @return 项目关联单位
*/
public BusinessRelateCompany selectBusinessRelateCompanyById(Long id);
/**
* 查询项目关联单位列表
*
* @param businessRelateCompany 项目关联单位
* @return 项目关联单位集合
*/
public List<BusinessRelateCompany> selectBusinessRelateCompanyList(BusinessRelateCompany businessRelateCompany);
/**
* 新增项目关联单位
*
* @param businessRelateCompany 项目关联单位
* @return 结果
*/
public int insertBusinessRelateCompany(BusinessRelateCompany businessRelateCompany);
/**
* 修改项目关联单位
*
* @param businessRelateCompany 项目关联单位
* @return 结果
*/
public int updateBusinessRelateCompany(BusinessRelateCompany businessRelateCompany);
/**
* 删除项目关联单位
*
* @param id 项目关联单位主键
* @return 结果
*/
public int deleteBusinessRelateCompanyById(Long id);
/**
* 批量删除项目关联单位
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessRelateCompanyByIds(Long[] ids);
}
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessUser;
import java.util.List;
/**
* 项目用户关联Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
public interface BusinessUserMapper
{
/**
* 查询项目用户关联
*
* @param id 项目用户关联主键
* @return 项目用户关联
*/
public BusinessUser selectBusinessUserById(Long id);
/**
* 查询项目用户关联列表
*
* @param businessUser 项目用户关联
* @return 项目用户关联集合
*/
public List<BusinessUser> selectBusinessUserList(BusinessUser businessUser);
/**
* 新增项目用户关联
*
* @param businessUser 项目用户关联
* @return 结果
*/
public int insertBusinessUser(BusinessUser businessUser);
/**
* 修改项目用户关联
*
* @param businessUser 项目用户关联
* @return 结果
*/
public int updateBusinessUser(BusinessUser businessUser);
/**
* 删除项目用户关联
*
* @param id 项目用户关联主键
* @return 结果
*/
public int deleteBusinessUserById(Long id);
/**
* 批量删除项目用户关联
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBusinessUserByIds(Long[] ids);
}
......@@ -21,5 +21,9 @@ public interface CustomerMapper extends BaseMapper<Customer> {
List<CustomerListVo> selectList(@Param("dto") CustomerSearchDto dto);
List<Customer> selectUserList(Long userId);
Customer selectByCompanyIdAndUserId(@Param("companyId")Integer companyId,@Param("userId")Long userId);
}
package com.dsk.system.service;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessBacklog;
/**
* 项目工作待办Service接口
*
* @author llx
* @date 2023-05-17
*/
public interface IBusinessBacklogService
{
/**
* 查询项目工作待办
*
* @param id 项目工作待办主键
* @return 项目工作待办
*/
public BusinessBacklog selectBusinessBacklogById(Long id);
/**
* 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办集合
*/
public List<BusinessBacklog> selectBusinessBacklogList(BusinessBacklog businessBacklog);
/**
* 新增项目工作待办
*
* @param businessBacklog 项目工作待办
* @return 结果
*/
public int insertBusinessBacklog(BusinessBacklog businessBacklog);
/**
* 修改项目工作待办
*
* @param businessBacklog 项目工作待办
* @return 结果
*/
public int updateBusinessBacklog(BusinessBacklog businessBacklog);
/**
* 批量删除项目工作待办
*
* @param ids 需要删除的项目工作待办主键集合
* @return 结果
*/
public int deleteBusinessBacklogByIds(Long[] ids);
/**
* 删除项目工作待办信息
*
* @param id 项目工作待办主键
* @return 结果
*/
public int deleteBusinessBacklogById(Long id);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessContacts;
import java.util.List;
/**
* 项目联系人Service接口
*
* @author ruoyi
* @date 2023-05-17
*/
public interface IBusinessContactsService
{
/**
* 查询项目联系人
*
* @param id 项目联系人主键
* @return 项目联系人
*/
public BusinessContacts selectBusinessContactsById(Long id);
/**
* 查询项目联系人列表
*
* @param businessContacts 项目联系人
* @return 项目联系人集合
*/
public List<BusinessContacts> selectBusinessContactsList(BusinessContacts businessContacts);
/**
* 新增项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public int insertBusinessContacts(BusinessContacts businessContacts);
/**
* 修改项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public int updateBusinessContacts(BusinessContacts businessContacts);
/**
* 批量删除项目联系人
*
* @param ids 需要删除的项目联系人主键集合
* @return 结果
*/
public int deleteBusinessContactsByIds(Long[] ids);
/**
* 删除项目联系人信息
*
* @param id 项目联系人主键
* @return 结果
*/
public int deleteBusinessContactsById(Long id);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import java.util.List;
/**
* 项目跟进记录Service接口
*
* @author lxl
* @date 2023-05-17
*/
public interface IBusinessFollowRecordService
{
/**
* 查询项目跟进记录
*
* @param id 项目跟进记录主键
* @return 项目跟进记录
*/
public BusinessFollowRecord selectBusinessFollowRecordById(Long id);
/**
* 根据项目id查询项目跟进记录
*
* @param businessId 项目跟进记录
* @return 项目跟进记录集合
*/
public List<BusinessFollowRecord> selectBusinessFollowRecordList(Integer businessId);
/**
* 分页查询项目跟进记录列表
*
* @param businessFollowRecord 项目跟进记录
* @return 项目跟进记录集合
*/
public List<BusinessFollowRecord> businessFollowRecordPaging(BusinessFollowRecord businessFollowRecord);
/**
* 新增项目跟进记录
*
* @param businessFollowRecord 项目跟进记录
* @return 结果
*/
public int insertBusinessFollowRecord(BusinessFollowRecord businessFollowRecord);
/**
* 修改项目跟进记录
*
* @param businessFollowRecord 项目跟进记录
* @return 结果
*/
public int updateBusinessFollowRecord(BusinessFollowRecord businessFollowRecord);
/**
* 批量删除项目跟进记录
*
* @param ids 需要删除的项目跟进记录主键集合
* @return 结果
*/
public int deleteBusinessFollowRecordByIds(Long[] ids);
/**
* 删除项目跟进记录信息
*
* @param id 项目跟进记录主键
* @return 结果
*/
public int deleteBusinessFollowRecordById(Long id);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessInfo;
import com.dsk.system.domain.BusinessAddDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
import com.dsk.system.domain.vo.BusinessBrowseVo;
import com.dsk.system.domain.vo.BusinessListVo;
import java.util.List;
/**
* 项目详情Service接口
*
* @author ruoyi
* @date 2023-05-17
*/
public interface IBusinessInfoService
{
/**
* 查询项目详情
*
* @param id 项目详情主键
* @return 项目详情
*/
public BusinessInfo selectBusinessInfoById(Integer id);
/**
* 查询项目建设内容
*
* @param id 项目详情主键
* @return
*/
BusinessInfo getConstruction(Integer id);
/**
* 查询项目详情列表
*
* @param dto 项目详情
* @return 项目详情集合
*/
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto);
/**
* 查询项目速览
* @param businessId
* @return
*/
BusinessBrowseVo browse(Integer businessId);
/**
* 查询所有项目名称(支持模糊查询)
* @return
*/
List<String> selectProjectName(BusinessListDto dto);
/**
* 新增项目详情
*
* @param dto 项目详情
* @return 结果
*/
public AjaxResult insertBusinessInfo(BusinessAddDto dto);
/**
* 修改项目详情
*
* @param businessInfo 项目详情
* @return 结果
*/
public int updateBusinessInfo(BusinessInfo businessInfo);
/**
* 批量删除项目详情
*
* @param ids 需要删除的项目详情主键集合
* @return 结果
*/
public int deleteBusinessInfoByIds(Long[] ids);
/**
* 删除项目详情信息
*
* @param id 项目详情主键
* @return 结果
*/
public int deleteBusinessInfoById(Long id);
int selectCountByStatusAndCustomerId(Integer status,String customerId);
List<CustomerBusinessListVo> selectCustomerBusinessList(CustomerBusinessSearchDto dto);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.system.domain.BusinessIdDto;
import java.util.List;
/**
* 项目标签Service接口
*
* @author ruoyi
* @date 2023-05-17
*/
public interface IBusinessLabelService
{
/**
* 查询项目标签
*
* @param id 项目标签主键
* @return 项目标签
*/
public BusinessLabel selectBusinessLabelById(Long id);
/**
* 查询项目标签列表
*
* @param businessLabel 项目标签
* @return 项目标签集合
*/
public List<BusinessLabel> selectBusinessLabelList(BusinessLabel businessLabel);
/**
* 新增项目标签
*
* @param businessLabel 项目标签
* @return 结果
*/
public int insertBusinessLabel(BusinessLabel businessLabel);
/**
* 修改项目标签
*
* @param businessLabel 项目标签
* @return 结果
*/
public int updateBusinessLabel(BusinessLabel businessLabel);
/**
* 批量删除项目标签
*
* @param ids 需要删除的项目标签主键集合
* @return 结果
*/
public int deleteBusinessLabelByIds(Long[] ids);
/**
* 删除项目标签信息
*
* @param dto 项目主键
* @return 结果
*/
public int deleteBusinessLabelById(BusinessIdDto dto);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.system.domain.BusinessIdDto;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 项目关联单位Service接口
*
* @author lxl
* @date 2023-05-17
*/
public interface IBusinessRelateCompanyService
{
/**
* 查询项目关联单位
*
* @param id 项目关联单位主键
* @return 项目关联单位
*/
public BusinessRelateCompany selectBusinessRelateCompanyById(Long id);
/**
* 查询项目关联单位列表
*
* @param businessRelateCompany 项目关联单位
* @return 项目关联单位集合
*/
public List<BusinessRelateCompany> selectBusinessRelateCompanyList(BusinessRelateCompany businessRelateCompany);
/**
* 新增项目关联单位
*
* @param businessRelateCompany 项目关联单位
* @return 结果
*/
public int insertBusinessRelateCompany(BusinessRelateCompany businessRelateCompany);
/**
* 修改项目关联单位
*
* @param businessRelateCompany 项目关联单位
* @return 结果
*/
public int updateBusinessRelateCompany(BusinessRelateCompany businessRelateCompany);
/**
* 批量删除项目关联单位
*
* @param ids 需要删除的项目关联单位主键集合
* @return 结果
*/
public int deleteBusinessRelateCompanyByIds(Long[] ids);
/**
* 删除项目关联单位信息
*
* @param id 项目关联单位主键
* @return 结果
*/
public int deleteBusinessRelateCompanyById(Long id);
/**
* 查询关联单位角色
*/
List<String> companyRoleList(BusinessIdDto dto);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessUser;
import java.util.List;
/**
* 项目用户关联Service接口
*
* @author lxl
* @date 2023-05-17
*/
public interface IBusinessUserService
{
/**
* 查询项目用户关联
*
* @param id 项目用户关联主键
* @return 项目用户关联
*/
public BusinessUser selectBusinessUserById(Long id);
/**
* 查询项目用户关联列表
*
* @param businessUser 项目用户关联
* @return 项目用户关联集合
*/
public List<BusinessUser> selectBusinessUserList(BusinessUser businessUser);
/**
* 新增项目用户关联
*
* @param businessUser 项目用户关联
* @return 结果
*/
public int insertBusinessUser(BusinessUser businessUser);
/**
* 修改项目用户关联
*
* @param businessUser 项目用户关联
* @return 结果
*/
public int updateBusinessUser(BusinessUser businessUser);
/**
* 批量删除项目用户关联
*
* @param ids 需要删除的项目用户关联主键集合
* @return 结果
*/
public int deleteBusinessUserByIds(Long[] ids);
/**
* 删除项目用户关联信息
*
* @param id 项目用户关联主键
* @return 结果
*/
public int deleteBusinessUserById(Long id);
}
package com.dsk.system.service;
import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
import com.dsk.system.domain.customer.vo.CustomerListVo;
import com.dsk.system.domain.customer.vo.CustomerVo;
......@@ -25,4 +27,8 @@ public interface ICustomerService {
List<Customer> selectUserList();
List<CustomerBusinessListVo> selectBusinessList(CustomerBusinessSearchDto dto);
List<String> importData(List<Customer> customerList);
}
package com.dsk.system.service.impl;
import com.dsk.common.core.domain.entity.BusinessBacklog;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.mapper.BusinessBacklogMapper;
import com.dsk.system.service.IBusinessBacklogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 项目工作待办Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public class BusinessBacklogServiceImpl implements IBusinessBacklogService
{
@Autowired
private BusinessBacklogMapper businessBacklogMapper;
/**
* 查询项目工作待办
*
* @param id 项目工作待办主键
* @return 项目工作待办
*/
@Override
public BusinessBacklog selectBusinessBacklogById(Long id)
{
return businessBacklogMapper.selectBusinessBacklogById(id);
}
/**
* 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办
*/
@Override
public List<BusinessBacklog> selectBusinessBacklogList(BusinessBacklog businessBacklog)
{
return businessBacklogMapper.selectBusinessBacklogList(businessBacklog);
}
/**
* 新增项目工作待办
*
* @param businessBacklog 项目工作待办
* @return 结果
*/
@Override
@Transactional
public int insertBusinessBacklog(BusinessBacklog businessBacklog)
{
businessBacklog.setCreateTime(DateUtils.getNowDate());
//新增记录,默认未完成
businessBacklog.setState(0);
return businessBacklogMapper.insertBusinessBacklog(businessBacklog);
}
/**
* 修改项目工作待办
*
* @param businessBacklog 项目工作待办
* @return 结果
*/
@Override
@Transactional
public int updateBusinessBacklog(BusinessBacklog businessBacklog)
{
businessBacklog.setUpdateTime(DateUtils.getNowDate());
return businessBacklogMapper.updateBusinessBacklog(businessBacklog);
}
/**
* 批量删除项目工作待办
*
* @param ids 需要删除的项目工作待办主键
* @return 结果
*/
@Override
public int deleteBusinessBacklogByIds(Long[] ids)
{
return businessBacklogMapper.deleteBusinessBacklogByIds(ids);
}
/**
* 删除项目工作待办信息
*
* @param id 项目工作待办主键
* @return 结果
*/
@Override
public int deleteBusinessBacklogById(Long id)
{
return businessBacklogMapper.deleteBusinessBacklogById(id);
}
}
package com.dsk.system.service.impl;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessContacts;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.CheckUtils;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.mapper.BusinessContactsMapper;
import com.dsk.system.service.IBusinessContactsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 项目联系人Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public class BusinessContactsServiceImpl implements IBusinessContactsService
{
@Autowired
private BusinessContactsMapper businessContactsMapper;
/**
* 查询项目联系人
*
* @param id 项目联系人主键
* @return 项目联系人
*/
@Override
public BusinessContacts selectBusinessContactsById(Long id)
{
return businessContactsMapper.selectBusinessContactsById(id);
}
/**
* 查询项目联系人列表
*
* @param businessContacts 项目联系人
* @return 项目联系人
*/
@Override
public List<BusinessContacts> selectBusinessContactsList(BusinessContacts businessContacts)
{
return businessContactsMapper.selectBusinessContactsList(businessContacts);
}
/**
* 新增项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
@Override
@Transactional
public int insertBusinessContacts(BusinessContacts businessContacts)
{
if(!CheckUtils.isPhone(businessContacts.getPhone())) throw new BaseException("500","请输入正确的手机号码");
return businessContactsMapper.insertBusinessContacts(businessContacts);
}
/**
* 修改项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
@Override
@Transactional
public int updateBusinessContacts(BusinessContacts businessContacts)
{
if(!CheckUtils.isPhone(businessContacts.getPhone())) throw new BaseException("500","请输入正确的手机号码");
businessContacts.setUpdateTime(DateUtils.getNowDate());
return businessContactsMapper.updateBusinessContacts(businessContacts);
}
/**
* 批量删除项目联系人
*
* @param ids 需要删除的项目联系人主键
* @return 结果
*/
@Override
public int deleteBusinessContactsByIds(Long[] ids)
{
return businessContactsMapper.deleteBusinessContactsByIds(ids);
}
/**
* 删除项目联系人信息
*
* @param id 项目联系人主键
* @return 结果
*/
@Override
public int deleteBusinessContactsById(Long id)
{
return businessContactsMapper.deleteBusinessContactsById(id);
}
}
package com.dsk.system.service.impl;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.mapper.BusinessFollowRecordMapper;
import com.dsk.system.service.IBusinessFollowRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 项目跟进记录Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordService
{
@Autowired
private BusinessFollowRecordMapper businessFollowRecordMapper;
/**
* 查询项目跟进记录
*
* @param id 项目跟进记录主键
* @return 项目跟进记录
*/
@Override
public BusinessFollowRecord selectBusinessFollowRecordById(Long id)
{
return businessFollowRecordMapper.selectBusinessFollowRecordById(id);
}
@Override
public List<BusinessFollowRecord> selectBusinessFollowRecordList(Integer businessId)
{
return businessFollowRecordMapper.selectBusinessFollowRecordList(businessId);
}
@Override
public List<BusinessFollowRecord> businessFollowRecordPaging(BusinessFollowRecord businessFollowRecord) {
return businessFollowRecordMapper.businessFollowRecordPaging(businessFollowRecord);
}
/**
* 新增项目跟进记录
*
* @param businessFollowRecord 项目跟进记录
* @return 结果
*/
@Override
@Transactional
public int insertBusinessFollowRecord(BusinessFollowRecord businessFollowRecord)
{
return businessFollowRecordMapper.insertBusinessFollowRecord(businessFollowRecord);
}
/**
* 修改项目跟进记录
*
* @param businessFollowRecord 项目跟进记录
* @return 结果
*/
@Override
public int updateBusinessFollowRecord(BusinessFollowRecord businessFollowRecord)
{
businessFollowRecord.setUpdateTime(DateUtils.getNowDate());
return businessFollowRecordMapper.updateBusinessFollowRecord(businessFollowRecord);
}
/**
* 批量删除项目跟进记录
*
* @param ids 需要删除的项目跟进记录主键
* @return 结果
*/
@Override
public int deleteBusinessFollowRecordByIds(Long[] ids)
{
return businessFollowRecordMapper.deleteBusinessFollowRecordByIds(ids);
}
/**
* 删除项目跟进记录信息
*
* @param id 项目跟进记录主键
* @return 结果
*/
@Override
public int deleteBusinessFollowRecordById(Long id)
{
return businessFollowRecordMapper.deleteBusinessFollowRecordById(id);
}
}
package com.dsk.system.service.impl;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessInfo;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.core.domain.entity.BusinessUser;
import com.dsk.common.dtos.BusinessInfoDto;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.domain.BusinessAddDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
import com.dsk.system.domain.vo.BusinessBrowseVo;
import com.dsk.system.domain.vo.BusinessListVo;
import com.dsk.system.mapper.BusinessInfoMapper;
import com.dsk.system.mapper.BusinessLabelMapper;
import com.dsk.system.mapper.BusinessRelateCompanyMapper;
import com.dsk.system.mapper.BusinessUserMapper;
import com.dsk.system.service.IBusinessInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* 项目详情Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Resource
private BusinessInfoMapper businessInfoMapper;
@Resource
private BusinessUserMapper businessUserMapper;
@Resource
private BusinessRelateCompanyMapper businessRelateCompanyMapper;
@Resource
private BusinessLabelMapper businessLabelMapper;
/**
* 查询项目详情
*
* @param id 项目详情主键
* @return 项目详情
*/
@Override
public BusinessInfo selectBusinessInfoById(Integer id) {
return businessInfoMapper.selectBusinessInfoById(id);
}
@Override
public BusinessInfo getConstruction(Integer id) {
return businessInfoMapper.getConstruction(id);
}
/**
* 查询项目详情列表
*
* @param dto 项目详情
* @return 项目详情
*/
@Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
return businessInfoMapper.selectBusinessInfoList(dto);
}
@Override
public BusinessBrowseVo browse(Integer businessId) {
BusinessBrowseVo businessBrowseVo = new BusinessBrowseVo();
//查询项目基本信息
BusinessInfo businessInfo = businessInfoMapper.selectBusinessInfoById(businessId);
BeanUtil.copyProperties(businessInfo,businessBrowseVo);
//查询项目标签
businessBrowseVo.setLabelList(businessLabelMapper.selectBusinessLabelList(new BusinessLabel(businessId)).stream().map(p -> p.getLabel()).collect(Collectors.toList()));
//查询关键企业
businessBrowseVo.setRelateCompany(businessRelateCompanyMapper.selectBusinessRelateCompanyList(new BusinessRelateCompany(businessId)));
BusinessBrowseVo total = businessInfoMapper.selectTotal(businessId);
businessBrowseVo.setBacklogCount(total.getBacklogCount());
businessBrowseVo.setContactsCount(total.getContactsCount());
businessBrowseVo.setFollowRecordCount(total.getFollowRecordCount());
businessBrowseVo.setRelateCompanyCount(total.getRelateCompanyCount());
return businessBrowseVo;
}
@Override
public List<String> selectProjectName(BusinessListDto dto) {
return businessInfoMapper.selectProjectName(dto);
}
/**
* 新增项目详情
*
* @param dto 项目详情
* @return 结果
*/
@Override
@Transactional
public AjaxResult insertBusinessInfo(BusinessAddDto dto) {
//新增项目主信息
BusinessInfo businessInfo = new BusinessInfo();
BeanUtil.copyProperties(dto, businessInfo);
int addBusiness = businessInfoMapper.insertBusinessInfo(businessInfo);
if (addBusiness > 0) {
//获取登陆用户的部门id
// Long deptId = SecurityUtils.getLoginUser().getDeptId();
Long deptId = 100l;
//新增用户-项目关系信息
int addbusinessUser = businessUserMapper.insertBusinessUser(new BusinessUser(businessInfo.getId(), deptId.intValue(), dto.getUserId(), 1));
//新增项目-关联企业信息
int addRelateCompany = businessRelateCompanyMapper.insertBusinessRelateCompany(new BusinessRelateCompany(businessInfo.getId(), dto.getCompanyId(), dto.getOwnerCompany(), "业主"));
return addbusinessUser > 0 && addRelateCompany > 0 ? AjaxResult.success() : AjaxResult.error();
}
return AjaxResult.error();
}
/**
* 修改项目详情
*
* @param businessInfo 项目详情
* @return 结果
*/
@Override
@Transactional
public int updateBusinessInfo(BusinessInfo businessInfo)
{
businessInfo.setUpdateTime(DateUtils.getNowDate());
return businessInfoMapper.updateBusinessInfo(businessInfo);
}
/**
* 批量删除项目详情
*
* @param ids 需要删除的项目详情主键
* @return 结果
*/
@Override
@Transactional
public int deleteBusinessInfoByIds(Long[] ids) {
return businessInfoMapper.deleteBusinessInfoByIds(ids);
}
/**
* 删除项目详情信息
*
* @param id 项目详情主键
* @return 结果
*/
@Override
public int deleteBusinessInfoById(Long id) {
return businessInfoMapper.deleteBusinessInfoById(id);
}
/**
* 查询项目数量
*
* @param status 项目状态
* @param customerId 客户id
* @return 项目数量
*/
@Override
public int selectCountByStatusAndCustomerId(Integer status, String customerId) {
return businessInfoMapper.selectCountByStatusAndCustomerId(status, customerId);
}
@Override
public List<CustomerBusinessListVo> selectCustomerBusinessList(CustomerBusinessSearchDto dto) {
return businessInfoMapper.selectCustomerBusinessList(dto);
}
}
package com.dsk.system.service.impl;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.mapper.BusinessLabelMapper;
import com.dsk.system.service.IBusinessLabelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 项目标签Service业务层处理
*
* @author ruoyi
* @date 2023-05-17
*/
@Service
public class BusinessLabelServiceImpl implements IBusinessLabelService
{
@Autowired
private BusinessLabelMapper businessLabelMapper;
/**
* 查询项目标签
*
* @param id 项目标签主键
* @return 项目标签
*/
@Override
public BusinessLabel selectBusinessLabelById(Long id)
{
return businessLabelMapper.selectBusinessLabelById(id);
}
/**
* 查询项目标签列表
*
* @param businessLabel 项目标签
* @return 项目标签
*/
@Override
public List<BusinessLabel> selectBusinessLabelList(BusinessLabel businessLabel)
{
return businessLabelMapper.selectBusinessLabelList(businessLabel);
}
/**
* 新增项目标签
*
* @param businessLabel 项目标签
* @return 结果
*/
@Override
@Transactional
public int insertBusinessLabel(BusinessLabel businessLabel)
{
businessLabel.setCreateTime(DateUtils.getNowDate());
return businessLabelMapper.insertBusinessLabel(businessLabel);
}
/**
* 修改项目标签
*
* @param businessLabel 项目标签
* @return 结果
*/
@Override
public int updateBusinessLabel(BusinessLabel businessLabel)
{
businessLabel.setUpdateTime(DateUtils.getNowDate());
return businessLabelMapper.updateBusinessLabel(businessLabel);
}
/**
* 批量删除项目标签
*
* @param ids 需要删除的项目标签主键
* @return 结果
*/
@Override
public int deleteBusinessLabelByIds(Long[] ids)
{
return businessLabelMapper.deleteBusinessLabelByIds(ids);
}
/**
* 删除项目标签信息
*
* @param dto 项目主键
* @return 结果
*/
@Override
@Transactional
public int deleteBusinessLabelById(BusinessIdDto dto)
{
return businessLabelMapper.deleteBusinessLabelById(dto);
}
}
package com.dsk.system.service.impl;
import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.CheckUtils;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.mapper.BusinessRelateCompanyMapper;
import com.dsk.system.service.IBusinessRelateCompanyService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* 项目关联单位Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyService
{
@Resource
private BusinessRelateCompanyMapper businessRelateCompanyMapper;
/**
* 查询项目关联单位
*
* @param id 项目关联单位主键
* @return 项目关联单位
*/
@Override
public BusinessRelateCompany selectBusinessRelateCompanyById(Long id)
{
return businessRelateCompanyMapper.selectBusinessRelateCompanyById(id);
}
/**
* 查询项目关联单位列表
*
* @param businessRelateCompany 项目关联单位
* @return 项目关联单位
*/
@Override
public List<BusinessRelateCompany> selectBusinessRelateCompanyList(BusinessRelateCompany businessRelateCompany)
{
return businessRelateCompanyMapper.selectBusinessRelateCompanyList(businessRelateCompany);
}
/**
* 新增项目关联单位
*
* @param businessRelateCompany 项目关联单位
* @return 结果
*/
@Override
@Transactional
public int insertBusinessRelateCompany(BusinessRelateCompany businessRelateCompany)
{
if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的手机号码");
businessRelateCompany.setCreateTime(DateUtils.getNowDate());
return businessRelateCompanyMapper.insertBusinessRelateCompany(businessRelateCompany);
}
/**
* 修改项目关联单位
*
* @param businessRelateCompany 项目关联单位
* @return 结果
*/
@Override
@Transactional
public int updateBusinessRelateCompany(BusinessRelateCompany businessRelateCompany)
{
if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的手机号码");
businessRelateCompany.setUpdateTime(DateUtils.getNowDate());
return businessRelateCompanyMapper.updateBusinessRelateCompany(businessRelateCompany);
}
/**
* 批量删除项目关联单位
*
* @param ids 需要删除的项目关联单位主键
* @return 结果
*/
@Override
public int deleteBusinessRelateCompanyByIds(Long[] ids)
{
return businessRelateCompanyMapper.deleteBusinessRelateCompanyByIds(ids);
}
/**
* 删除项目关联单位信息
*
* @param id 项目关联单位主键
* @return 结果
*/
@Override
public int deleteBusinessRelateCompanyById(Long id)
{
return businessRelateCompanyMapper.deleteBusinessRelateCompanyById(id);
}
@Override
public List<String> companyRoleList(BusinessIdDto dto) {
List<BusinessRelateCompany> roleList = businessRelateCompanyMapper.selectList(Wrappers.<BusinessRelateCompany>lambdaQuery()
.select(BusinessRelateCompany::getCompanyRole)
.eq(BusinessRelateCompany::getBusinessId, dto.getBusinessId())
.groupBy(BusinessRelateCompany::getCompanyRole)
.orderByDesc(BusinessRelateCompany::getCreateTime));
return roleList.stream().map(p ->p.getCompanyRole()).collect(Collectors.toList());
}
}
package com.dsk.system.service.impl;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessUser;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.mapper.BusinessUserMapper;
import com.dsk.system.service.IBusinessUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 项目用户关联Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public class BusinessUserServiceImpl implements IBusinessUserService
{
@Autowired
private BusinessUserMapper businessUserMapper;
/**
* 查询项目用户关联
*
* @param id 项目用户关联主键
* @return 项目用户关联
*/
@Override
public BusinessUser selectBusinessUserById(Long id)
{
return businessUserMapper.selectBusinessUserById(id);
}
/**
* 查询项目用户关联列表
*
* @param businessUser 项目用户关联
* @return 项目用户关联
*/
@Override
public List<BusinessUser> selectBusinessUserList(BusinessUser businessUser)
{
return businessUserMapper.selectBusinessUserList(businessUser);
}
/**
* 新增项目用户关联
*
* @param businessUser 项目用户关联
* @return 结果
*/
@Override
public int insertBusinessUser(BusinessUser businessUser)
{
businessUser.setCreateTime(DateUtils.getNowDate());
return businessUserMapper.insertBusinessUser(businessUser);
}
/**
* 修改项目用户关联
*
* @param businessUser 项目用户关联
* @return 结果
*/
@Override
public int updateBusinessUser(BusinessUser businessUser)
{
businessUser.setUpdateTime(DateUtils.getNowDate());
return businessUserMapper.updateBusinessUser(businessUser);
}
/**
* 批量删除项目用户关联
*
* @param ids 需要删除的项目用户关联主键
* @return 结果
*/
@Override
public int deleteBusinessUserByIds(Long[] ids)
{
return businessUserMapper.deleteBusinessUserByIds(ids);
}
/**
* 删除项目用户关联信息
*
* @param id 项目用户关联主键
* @return 结果
*/
@Override
public int deleteBusinessUserById(Long id)
{
return businessUserMapper.deleteBusinessUserById(id);
}
}
......@@ -8,18 +8,23 @@ import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.CustomerUser;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
import com.dsk.system.domain.customer.vo.CustomerListVo;
import com.dsk.system.domain.customer.vo.CustomerVo;
import com.dsk.system.mapper.CustomerMapper;
import com.dsk.system.mapper.CustomerUserMapper;
import com.dsk.system.service.IBusinessInfoService;
import com.dsk.system.service.ICustomerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -28,6 +33,7 @@ import java.util.List;
* @author makejava
* @since 2023-05-16 09:27:57
*/
@Slf4j
@Service
public class CustomerServiceImpl implements ICustomerService {
......@@ -35,7 +41,8 @@ public class CustomerServiceImpl implements ICustomerService {
private CustomerMapper baseMapper;
@Resource
private CustomerUserMapper customerUserMapper;
@Autowired
private IBusinessInfoService businessInfoService;
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
......@@ -43,15 +50,14 @@ public class CustomerServiceImpl implements ICustomerService {
public List<CustomerListVo> selectList(CustomerSearchDto dto) {
dto.setUserId(SecurityUtils.getUserId());
List<CustomerListVo> vos = baseMapper.selectList(dto);
for (CustomerListVo vo : vos) {
//TODO 客户项目相关统计
vos.parallelStream().forEach(vo -> {
//合作项目
vo.setCooperationProject(1);
vo.setCooperationProject(businessInfoService.selectCountByStatusAndCustomerId(2, vo.getCustomerId()));
//跟进项目
vo.setFollowProject(1);
vo.setFollowProject(businessInfoService.selectCountByStatusAndCustomerId(1, vo.getCustomerId()));
//储备项目
vo.setReserveProject(1);
}
vo.setReserveProject(businessInfoService.selectCountByStatusAndCustomerId(0, vo.getCustomerId()));
});
return vos;
}
......@@ -69,9 +75,15 @@ public class CustomerServiceImpl implements ICustomerService {
@Transactional(rollbackFor = Exception.class)
public boolean add(Customer customer) {
if (ObjectUtils.isEmpty(customer.getCompanyName())) throw new BeanException("企业名称不能为空");
if (ObjectUtils.isEmpty(customer.getCompanyId())) throw new BeanException("企业id不能为空");
final Long userId = SecurityUtils.getUserId();
customer.setCreateId(userId);
customer.setUpdateId(userId);
//查重
Customer verifyCustomer = baseMapper.selectByCompanyIdAndUserId(customer.getCompanyId(), userId);
if (!ObjectUtils.isEmpty(verifyCustomer)) {
throw new ServiceException("当前客户信息已存在,请勿重复添加!");
}
int i = baseMapper.insert(customer);
if (i == 0) throw new ServiceException("客户信息添加错误!");
......@@ -93,6 +105,31 @@ public class CustomerServiceImpl implements ICustomerService {
@Override
public List<Customer> selectUserList() {
return baseMapper.selectList(Wrappers.<Customer>lambdaQuery());
return baseMapper.selectUserList(SecurityUtils.getUserId());
}
@Override
public List<CustomerBusinessListVo> selectBusinessList(CustomerBusinessSearchDto dto) {
if (ObjectUtils.isEmpty(dto.getCustomerId())) throw new BeanException("客户id不能为空");
dto.setUserId(SecurityUtils.getUserId());
return businessInfoService.selectCustomerBusinessList(dto);
}
@Override
public List<String> importData(List<Customer> customerList) {
List<String> resultList = new ArrayList<>();
for (Customer customer : customerList) {
if (ObjectUtils.isEmpty(customer.getCompanyName())) {
continue;
}
try {
//TODO 名称查询企业信息
this.add(customer);
} catch (Exception e) {
resultList.add(customer.getCompanyName().concat(e.getMessage()));
}
}
return resultList;
}
}
<?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.dsk.system.mapper.BusinessBacklogMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessBacklog" id="BusinessBacklogResult">
<result property="id" column="id"/>
<result property="businessId" column="business_id"/>
<result property="target" column="target"/>
<result property="task" column="task"/>
<result property="finishTime" column="finish_time"/>
<result property="state" column="state"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectBusinessBacklogVo">
select id,
business_id,
target,
task,
finish_time,
state,
create_time,
update_time
from business_backlog
</sql>
<select id="selectBusinessBacklogList" parameterType="com.dsk.common.core.domain.entity.BusinessBacklog"
resultMap="BusinessBacklogResult">
<include refid="selectBusinessBacklogVo"/>
<where>
<if test="businessId != null ">and business_id = #{businessId}</if>
<if test="target != null and target != ''">and target = #{target}</if>
<if test="task != null and task != ''">and task = #{task}</if>
<if test="finishTime != null ">and finish_time = #{finishTime}</if>
<if test="state != null ">and state = #{state}</if>
</where>
ORDER BY create_time DESC
</select>
<select id="selectBusinessBacklogById" parameterType="Long" resultMap="BusinessBacklogResult">
<include refid="selectBusinessBacklogVo"/>
where id = #{id}
</select>
<insert id="insertBusinessBacklog" parameterType="com.dsk.common.core.domain.entity.BusinessBacklog"
useGeneratedKeys="true" keyProperty="id">
insert into business_backlog
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if>
<if test="target != null">target,</if>
<if test="task != null">task,</if>
<if test="finishTime != null">finish_time,</if>
<if test="state != null">state,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
<if test="target != null">#{target},</if>
<if test="task != null">#{task},</if>
<if test="finishTime != null">#{finishTime},</if>
<if test="state != null">#{state},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBusinessBacklog" parameterType="com.dsk.common.core.domain.entity.BusinessBacklog">
update business_backlog
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="target != null">target = #{target},</if>
<if test="task != null">task = #{task},</if>
<if test="finishTime != null">finish_time = #{finishTime},</if>
<if test="state != null">state = #{state},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessBacklogById" parameterType="Long">
delete
from business_backlog
where id = #{id}
</delete>
<delete id="deleteBusinessBacklogByIds" parameterType="String">
delete from business_backlog where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?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.dsk.system.mapper.BusinessContactsMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessContacts" id="BusinessContactsResult">
<result property="id" column="id"/>
<result property="businessId" column="business_id"/>
<result property="name" column="name"/>
<result property="role" column="role"/>
<result property="office" column="office"/>
<result property="position" column="position"/>
<result property="phone" column="phone"/>
<result property="accendant" column="accendant"/>
<result property="creatTime" column="creat_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectBusinessContactsVo">
select id,
business_id,
name,
role,
office,
position,
phone,
accendant,
creat_time,
update_time
from business_contacts
</sql>
<select id="selectBusinessContactsList" parameterType="com.dsk.common.core.domain.entity.BusinessContacts" resultMap="BusinessContactsResult">
<include refid="selectBusinessContactsVo"/>
<where>
<if test="businessId != null ">and business_id = #{businessId}</if>
<if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if>
<if test="role != null and role != ''">and role = #{role}</if>
<if test="office != null and office != ''">and office = #{office}</if>
<if test="position != null and position != ''">and position = #{position}</if>
<if test="phone != null and phone != ''">and phone = #{phone}</if>
<if test="accendant != null and accendant != ''">and accendant = #{accendant}</if>
<if test="creatTime != null ">and creat_time = #{creatTime}</if>
</where>
order by creat_time desc
</select>
<select id="selectBusinessContactsById" parameterType="Long" resultMap="BusinessContactsResult">
<include refid="selectBusinessContactsVo"/>
where id = #{id}
</select>
<insert id="insertBusinessContacts" parameterType="com.dsk.common.core.domain.entity.BusinessContacts" useGeneratedKeys="true" keyProperty="id">
insert into business_contacts
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if>
<if test="name != null">name,</if>
<if test="role != null">role,</if>
<if test="office != null">office,</if>
<if test="position != null">position,</if>
<if test="phone != null">phone,</if>
<if test="accendant != null">accendant,</if>
<if test="creatTime != null">creat_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
<if test="name != null">#{name},</if>
<if test="role != null">#{role},</if>
<if test="office != null">#{office},</if>
<if test="position != null">#{position},</if>
<if test="phone != null">#{phone},</if>
<if test="accendant != null">#{accendant},</if>
<if test="creatTime != null">#{creatTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBusinessContacts" parameterType="com.dsk.common.core.domain.entity.BusinessContacts">
update business_contacts
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="name != null">name = #{name},</if>
<if test="role != null">role = #{role},</if>
<if test="office != null">office = #{office},</if>
<if test="position != null">position = #{position},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="accendant != null">accendant = #{accendant},</if>
<if test="creatTime != null">creat_time = #{creatTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessContactsById" parameterType="Long">
delete
from business_contacts
where id = #{id}
</delete>
<delete id="deleteBusinessContactsByIds" parameterType="String">
delete from business_contacts where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?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.dsk.system.mapper.BusinessFollowRecordMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessFollowRecord" id="BusinessFollowRecordResult">
<result property="id" column="id"/>
<result property="businessId" column="business_id"/>
<result property="userId" column="user_id"/>
<result property="visitPerson" column="visit_person"/>
<result property="position" column="position"/>
<result property="visitTime" column="visit_time"/>
<result property="nextVisitTime" column="next_visit_time"/>
<result property="recordInfo" column="record_info"/>
<result property="visitWay" column="visit_way"/>
<result property="creatTime" column="creat_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectBusinessFollowRecordVo">
select id,
business_id,
user_id,
visit_person,
position,
visit_time,
next_visit_time,
record_info,
visit_way,
creat_time,
update_time
from business_follow_record
</sql>
<select id="selectBusinessFollowRecordList" resultType="com.dsk.common.core.domain.entity.BusinessFollowRecord">
select f.*,u.nick_name as nickName
from business_follow_record f
left join sys_user u on f.user_id = u.user_id
where f.business_id = #{businessId}
ORDER BY create_time DESC
</select>
<select id="selectBusinessFollowRecordById" parameterType="Long" resultMap="BusinessFollowRecordResult">
<include refid="selectBusinessFollowRecordVo"/>
where id = #{id}
</select>
<select id="businessFollowRecordPaging" resultType="com.dsk.common.core.domain.entity.BusinessFollowRecord">
<include refid="selectBusinessFollowRecordVo"></include>
<where>
<if test="businessId != null ">and f.business_id = #{businessId}</if>
<if test="userId != null ">and f.user_id = #{userId}</if>
<if test="visitPerson != null and visitPerson != ''">and f.visit_person = #{visitPerson}</if>
<if test="position != null and position != ''">and f.position = #{position}</if>
<if test="visitTime != null ">and f.visit_time = #{visitTime}</if>
<if test="nextVisitTime != null ">and f.next_visit_time = #{nextVisitTime}</if>
<if test="recordInfo != null and recordInfo != ''">and f.record_info = #{recordInfo}</if>
<if test="visitWay != null and visitWay != ''">and f.visit_way = #{visitWay}</if>
<if test="creatTime != null ">and f.creat_time = #{creatTime}</if>
</where>
ORDER BY create_time DESC
</select>
<insert id="insertBusinessFollowRecord" parameterType="com.dsk.common.core.domain.entity.BusinessFollowRecord" useGeneratedKeys="true"
keyProperty="id">
insert into business_follow_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if>
<if test="userId != null">user_id,</if>
<if test="visitPerson != null and visitPerson != ''">visit_person,</if>
<if test="position != null and position != ''">position,</if>
<if test="visitTime != null">visit_time,</if>
<if test="nextVisitTime != null">next_visit_time,</if>
<if test="recordInfo != null">record_info,</if>
<if test="visitWay != null">visit_way,</if>
<if test="creatTime != null">creat_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
<if test="userId != null">#{userId},</if>
<if test="visitPerson != null and visitPerson != ''">#{visitPerson},</if>
<if test="position != null and position != ''">#{position},</if>
<if test="visitTime != null">#{visitTime},</if>
<if test="nextVisitTime != null">#{nextVisitTime},</if>
<if test="recordInfo != null">#{recordInfo},</if>
<if test="visitWay != null">#{visitWay},</if>
<if test="creatTime != null">#{creatTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBusinessFollowRecord" parameterType="com.dsk.common.core.domain.entity.BusinessFollowRecord">
update business_follow_record
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="visitPerson != null and visitPerson != ''">visit_person = #{visitPerson},</if>
<if test="position != null and position != ''">position = #{position},</if>
<if test="visitTime != null">visit_time = #{visitTime},</if>
<if test="nextVisitTime != null">next_visit_time = #{nextVisitTime},</if>
<if test="recordInfo != null">record_info = #{recordInfo},</if>
<if test="visitWay != null">visit_way = #{visitWay},</if>
<if test="creatTime != null">creat_time = #{creatTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessFollowRecordById" parameterType="Long">
delete
from business_follow_record
where id = #{id}
</delete>
<delete id="deleteBusinessFollowRecordByIds" parameterType="String">
delete from business_follow_record where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?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.dsk.system.mapper.BusinessInfoMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessInfo" id="BusinessInfoResult">
<result property="id" column="id"/>
<result property="projectName" column="project_name"/>
<result property="investmentAmount" column="investment_amount"/>
<result property="amountSource" column="amount_source"/>
<result property="planBidTime" column="plan_bid_time"/>
<result property="planStartTime" column="plan_start_time"/>
<result property="projectLevel" column="project_level"/>
<result property="projectStage" column="project_stage"/>
<result property="buildProperty" column="build_property"/>
<result property="planCompleteTime" column="plan_complete_time"/>
<result property="projectDetails" column="project_details"/>
<result property="provinceName" column="province_name"/>
<result property="provinceId" column="province_id"/>
<result property="cityName" column="city_name"/>
<result property="cityId" column="city_id"/>
<result property="districtName" column="district_name"/>
<result property="districtId" column="district_id"/>
<result property="projectType" column="project_type"/>
<result property="projectCategory" column="project_category"/>
<result property="team" column="team"/>
<result property="isPrivate" column="is_private"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="status" column="status"/>
<result property="customerId" column="customer_id"/>
</resultMap>
<sql id="selectBusinessInfoVo">
select id,
project_name,
investment_amount,
amount_source,
plan_bid_time,
plan_start_time,
project_level,
project_stage,
build_property,
plan_complete_time,
project_details,
province_name,
province_id,
city_name,
city_id,
district_name,
district_id,
project_type,
project_category,
team,
is_private,
create_time,
update_time,
status,
customer_id
from business_info
</sql>
<select id="selectBusinessInfoList" resultType="com.dsk.system.domain.vo.BusinessListVo">
SELECT
i.id,
i.project_name projectName,
i.province_name provinceName,
i.city_name cityName,
i.district_name districtName,
i.investment_amount investmentAmount,
GROUP_CONCAT(DISTINCT r.company_name) ownerCompany,
MAX(f.creat_time) followTime,
u.nick_name nickName,
GROUP_CONCAT(DISTINCT l.label) label
FROM business_info i
LEFT JOIN business_follow_record f on f.business_id = i.id
LEFT JOIN (SELECT business_id,company_name FROM business_relate_company WHERE company_role LIKE '%业主%' ) r on r.business_id = i.id
LEFT JOIN business_label l on l.business_id = i.id
LEFT JOIN business_user bu on bu.business_id = i.id
LEFT JOIN sys_user u on u.user_id = f.user_id
<where>
<if test="provinceId != null">
and i.province_id = #{provinceId}
</if>
<if test="cityId != null">
and i.city_id = #{cityId}
</if>
<if test="districtId != null">
and i.district_id = #{districtId}
</if>
<if test="projectType != null and projectType != ''">
and i.project_type = #{projectType}
</if>
<if test="minAmount != null and minAmount != '' and maxAmount != minAmount">
and i.investment_amount &gt;= #{minAmount}
</if>
<if test="maxAmount != null and maxAmount != '' and maxAmount != minAmount">
and i.investment_amount &lt;= #{maxAmount}
</if>
<if test="minAmount != null and minAmount != '' and maxAmount != null and maxAmount != '' and maxAmount == minAmount">
and i.investment_amount = #{minAmount}
</if>
<if test="projectStage != null and projectStage != ''">
and i.project_stage = #{projectStage}
</if>
<if test="projectName != null and projectName != ''">
and i.project_name like concat('%',#{projectName},'%')
</if>
<if test="ownerCompany != null and ownerCompany != ''">
or r.company_name like concat('%',#{ownerCompany},'%')
</if>
<if test="userId != null">
and bu.user_id = #{userId}
</if>
<if test="deptId != null">
and bu.dept_id = #{deptId} and i.is_private = 1
</if>
</where>
GROUP BY i.id
ORDER BY i.create_time DESC
</select>
<select id="selectProjectName" resultType="java.lang.String">
SELECT *
FROM
(SELECT project_name as name FROM business_info) AS bu
<where>
<if test="projectName !=null and projectName!=''">
name like concat('%',#{projectName},'%')
</if>
</where>
</select>
<select id="selectBusinessInfoById" parameterType="integer" resultMap="BusinessInfoResult">
<include refid="selectBusinessInfoVo"/>
where id = #{id}
</select>
<select id="selectTotal" resultType="com.dsk.system.domain.vo.BusinessBrowseVo">
SELECT
count(DISTINCT c.id) contactsCount,
count(DISTINCT f.id) followRecordCount,
count(DISTINCT b.id) backlogCount,
count(DISTINCT r.id) relateCompanyCount
FROM
business_info i
LEFT JOIN business_contacts c on c.business_id = i.id
LEFT JOIN business_follow_record f on f.business_id = i.id
LEFT JOIN business_backlog b on b.business_id = i.id
LEFT JOIN business_relate_company r on r.business_id = i.id
WHERE i.id = #{business}
</select>
<insert id="insertBusinessInfo" parameterType="com.dsk.common.core.domain.entity.BusinessInfo" useGeneratedKeys="true" keyProperty="id">
insert into business_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="projectName != null">project_name,</if>
<if test="investmentAmount != null">investment_amount,</if>
<if test="amountSource != null">amount_source,</if>
<if test="planBidTime != null">plan_bid_time,</if>
<if test="planStartTime != null">plan_start_time,</if>
<if test="projectLevel != null">project_level,</if>
<if test="projectStage != null">project_stage,</if>
<if test="buildProperty != null">build_property,</if>
<if test="planCompleteTime != null">plan_complete_time,</if>
<if test="projectDetails != null">project_details,</if>
<if test="provinceName != null">province_name,</if>
<if test="provinceId != null">province_id,</if>
<if test="cityName != null">city_name,</if>
<if test="cityId != null">city_id,</if>
<if test="districtName != null">district_name,</if>
<if test="districtId != null">district_id,</if>
<if test="projectType != null">project_type,</if>
<if test="projectCategory != null">project_category,</if>
<if test="team != null">team,</if>
<if test="isPrivate != null">is_private,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="status != null">status,</if>
<if test="customerId != null">customer_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="projectName != null">#{projectName},</if>
<if test="investmentAmount != null">#{investmentAmount},</if>
<if test="amountSource != null">#{amountSource},</if>
<if test="planBidTime != null">#{planBidTime},</if>
<if test="planStartTime != null">#{planStartTime},</if>
<if test="projectLevel != null">#{projectLevel},</if>
<if test="projectStage != null">#{projectStage},</if>
<if test="buildProperty != null">#{buildProperty},</if>
<if test="planCompleteTime != null">#{planCompleteTime},</if>
<if test="projectDetails != null">#{projectDetails},</if>
<if test="provinceName != null">#{provinceName},</if>
<if test="provinceId != null">#{provinceId},</if>
<if test="cityName != null">#{cityName},</if>
<if test="cityId != null">#{cityId},</if>
<if test="districtName != null">#{districtName},</if>
<if test="districtId != null">#{districtId},</if>
<if test="projectType != null">#{projectType},</if>
<if test="projectCategory != null">#{projectCategory},</if>
<if test="team != null">#{team},</if>
<if test="isPrivate != null">#{isPrivate},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="status != null">#{status},</if>
<if test="customerId != null">#{customerId},</if>
</trim>
</insert>
<update id="updateBusinessInfo" parameterType="com.dsk.common.core.domain.entity.BusinessInfo">
update business_info
<trim prefix="SET" suffixOverrides=",">
<if test="projectName != null">project_name = #{projectName},</if>
<if test="investmentAmount != null">investment_amount = #{investmentAmount},</if>
<if test="amountSource != null">amount_source = #{amountSource},</if>
<if test="planBidTime != null">plan_bid_time = #{planBidTime},</if>
<if test="planStartTime != null">plan_start_time = #{planStartTime},</if>
<if test="projectLevel != null">project_level = #{projectLevel},</if>
<if test="projectStage != null">project_stage = #{projectStage},</if>
<if test="buildProperty != null">build_property = #{buildProperty},</if>
<if test="planCompleteTime != null">plan_complete_time = #{planCompleteTime},</if>
<if test="projectDetails != null">project_details = #{projectDetails},</if>
<if test="provinceName != null">province_name = #{provinceName},</if>
<if test="provinceId != null">province_id = #{provinceId},</if>
<if test="cityName != null">city_name = #{cityName},</if>
<if test="cityId != null">city_id = #{cityId},</if>
<if test="districtName != null">district_name = #{districtName},</if>
<if test="districtId != null">district_id = #{districtId},</if>
<if test="projectType != null">project_type = #{projectType},</if>
<if test="projectCategory != null">project_category = #{projectCategory},</if>
<if test="team != null">team = #{team},</if>
<if test="isPrivate != null">is_private = #{isPrivate},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="status != null">status = #{status},</if>
<if test="customerId != null">customer_id = #{customerId},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessInfoById" parameterType="Long">
delete
from business_info
where id = #{id}
</delete>
<delete id="deleteBusinessInfoByIds" parameterType="Long">
delete from business_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="selectCountByStatusAndCustomerId" resultType="java.lang.Integer">
select count(id) from business_info
<where>
<if test="status != null "> and `status` = #{status} </if>
<if test="customerId != null and customerId != ''"> and `customer_id` = #{customerId} </if>
</where>
</select>
<select id="selectCustomerBusinessList" resultType="com.dsk.system.domain.customer.vo.CustomerBusinessListVo">
select
bi.id, bi.project_name, pi.investment_amount, pi.project_stage, pi.status
from business_info bi
left join business_user bu on bi.id = bu.business_id
where bi.customer_id = #{customerId} and (bu.user_id = #{userId} or bi.is_private = 1))
<if test="projectStage != null and projectStage != '' "> and bi.project_stage = #{projectStage}</if>
<if test="status != null "> and bi.status = #{status}</if>
order by bi.create_time desc
</select>
<select id="getConstruction" resultType="com.dsk.common.core.domain.entity.BusinessInfo">
select
investment_amount,
amount_source,
plan_bid_time,
plan_start_time,
plan_complete_time,
build_property,
project_details
from business_info
where id = #{id}
</select>
</mapper>
<?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.dsk.system.mapper.BusinessLabelMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessLabel" id="BusinessLabelResult">
<result property="id" column="id"/>
<result property="businessId" column="business_id"/>
<result property="label" column="label"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectBusinessLabelVo">
select id, business_id, label, create_time, update_time
from business_label
</sql>
<select id="selectBusinessLabelList" parameterType="com.dsk.common.core.domain.entity.BusinessLabel"
resultMap="BusinessLabelResult">
<include refid="selectBusinessLabelVo"/>
<where>
<if test="businessId != null ">and business_id = #{businessId}</if>
<if test="label != null and label != ''">and label = #{label}</if>
</where>
</select>
<select id="selectBusinessLabelById" parameterType="Long" resultMap="BusinessLabelResult">
<include refid="selectBusinessLabelVo"/>
where id = #{id}
</select>
<insert id="insertBusinessLabel" parameterType="com.dsk.common.core.domain.entity.BusinessLabel"
useGeneratedKeys="true" keyProperty="id">
insert into business_label
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if>
<if test="label != null">label,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
<if test="label != null">#{label},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBusinessLabel" parameterType="com.dsk.common.core.domain.entity.BusinessLabel">
update business_label
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="label != null">label = #{label},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessLabelById">
delete
from business_label
where business_id = #{businessId} and label = #{label}
</delete>
<delete id="deleteBusinessLabelByIds" parameterType="String">
delete from business_label where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?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.dsk.system.mapper.BusinessRelateCompanyMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessRelateCompany" id="BusinessRelateCompanyResult">
<result property="id" column="id"/>
<result property="businessId" column="business_id"/>
<result property="companyId" column="company_id"/>
<result property="companyName" column="company_name"/>
<result property="companyRole" column="company_role"/>
<result property="responsiblePerson" column="responsible_person"/>
<result property="phone" column="phone"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="depth" column="depth"/>
</resultMap>
<sql id="selectBusinessRelateCompanyVo">
select id,
business_id,
company_id,
company_name,
company_role,
responsible_person,
phone,
depth,
create_time,
update_time
from business_relate_company
</sql>
<select id="selectBusinessRelateCompanyList" parameterType="com.dsk.common.core.domain.entity.BusinessRelateCompany"
resultMap="BusinessRelateCompanyResult">
<include refid="selectBusinessRelateCompanyVo"/>
<where>
<if test="businessId != null ">and business_id = #{businessId}</if>
<if test="companyId != null ">and company_id = #{companyId}</if>
<if test="companyName != null and companyName != ''">and company_name like concat('%', #{companyName},
'%')
</if>
<if test="companyRole != null and companyRole != ''">and company_role = #{companyRole}</if>
<if test="depth != null and depth != ''">and depth = #{depth}</if>
<if test="responsiblePerson != null and responsiblePerson != ''">and responsible_person =
#{responsiblePerson}
</if>
<if test="phone != null and phone != ''">and phone = #{phone}</if>
</where>
</select>
<select id="selectBusinessRelateCompanyById" parameterType="Long" resultMap="BusinessRelateCompanyResult">
<include refid="selectBusinessRelateCompanyVo"/>
where id = #{id}
</select>
<insert id="insertBusinessRelateCompany" parameterType="com.dsk.common.core.domain.entity.BusinessRelateCompany" useGeneratedKeys="true"
keyProperty="id">
insert into business_relate_company
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if>
<if test="companyId != null">company_id,</if>
<if test="companyName != null">company_name,</if>
<if test="depth != null">depth,</if>
<if test="companyRole != null">company_role,</if>
<if test="responsiblePerson != null">responsible_person,</if>
<if test="phone != null">phone,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
<if test="companyId != null">#{companyId},</if>
<if test="companyName != null">#{companyName},</if>
<if test="depth != null">#{depth},</if>
<if test="companyRole != null">#{companyRole},</if>
<if test="responsiblePerson != null">#{responsiblePerson},</if>
<if test="phone != null">#{phone},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBusinessRelateCompany" parameterType="com.dsk.common.core.domain.entity.BusinessRelateCompany">
update business_relate_company
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="companyId != null">company_id = #{companyId},</if>
<if test="companyName != null">company_name = #{companyName},</if>
<if test="depth != null">depth = #{depth},</if>
<if test="companyRole != null">company_role = #{companyRole},</if>
<if test="responsiblePerson != null">responsible_person = #{responsiblePerson},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessRelateCompanyById" parameterType="Long">
delete
from business_relate_company
where id = #{id}
</delete>
<delete id="deleteBusinessRelateCompanyByIds" parameterType="String">
delete from business_relate_company where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?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.dsk.system.mapper.BusinessUserMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessUser" id="BusinessUserResult">
<result property="id" column="id"/>
<result property="businessId" column="business_id"/>
<result property="deptId" column="dept_id"/>
<result property="userId" column="user_id"/>
<result property="isFounder" column="is_founder"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectBusinessUserVo">
select id, business_id, dept_id, user_id, is_founder, create_time, update_time
from business_user
</sql>
<select id="selectBusinessUserList" parameterType="com.dsk.common.core.domain.entity.BusinessUser" resultMap="BusinessUserResult">
<include refid="selectBusinessUserVo"/>
<where>
<if test="businessId != null ">and business_id = #{businessId}</if>
<if test="deptId != null ">and company_id = #{deptId}</if>
<if test="userId != null ">and user_id = #{userId}</if>
<if test="isFounder != null ">and is_founder = #{isFounder}</if>
</where>
</select>
<select id="selectBusinessUserById" parameterType="Long" resultMap="BusinessUserResult">
<include refid="selectBusinessUserVo"/>
where id = #{id}
</select>
<insert id="insertBusinessUser" parameterType="com.dsk.common.core.domain.entity.BusinessUser" useGeneratedKeys="true" keyProperty="id">
insert into business_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if>
<if test="deptId != null">dept_id,</if>
<if test="userId != null">user_id,</if>
<if test="isFounder != null">is_founder,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
<if test="deptId != null">#{deptId},</if>
<if test="userId != null">#{userId},</if>
<if test="isFounder != null">#{isFounder},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateBusinessUser" parameterType="com.dsk.common.core.domain.entity.BusinessUser">
update business_user
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="deptId != null">dept_id = #{deptId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="isFounder != null">is_founder = #{isFounder},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBusinessUserById" parameterType="Long">
delete
from business_user
where id = #{id}
</delete>
<delete id="deleteBusinessUserByIds" parameterType="String">
delete from business_user where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
......@@ -2,13 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.system.mapper.CustomerMapper">
<sql id="Base_Bean">
ct.customer_id, ct.company_id, ct.company_name, ct.legal_person, ct.credit_code,
ct.register_capital, ct.company_nature, ct.company_level, ct.credit_level, ct.super_company,
ct.is_on, ct.is_major, ct.company_attribute, ct.main_business, ct.business_scope,
ct.business_characteristic, ct.decision_chain, ct.bid_characteristic, ct.performance_characteristic,
ct.other_ms_characteistic, ct.create_id, ct.create_time, ct.update_id, ct.update_time
</sql>
<select id="selectList" resultType="com.dsk.system.domain.customer.vo.CustomerListVo">
select
ct.customer_id, ct.company_id, ct.company_name, ct.legal_person, ct.register_capital_str,
ct.register_capital, ct.company_nature, ct.company_level, ct.credit_level, ct.super_company,
ct.is_on, ct.is_major, ct.company_attribute, ct.main_business, ct.business_scope,
ct.business_characteristic, ct.decision_chain, ct.bid_characteristic, ct.performance_characteristic,
ct.other_ms_characteistic, u.nick_name followUser
u.nick_name followUser,
<include refid="Base_Bean"></include>
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
join sys_user u on ctu.user_id = u.user_id
......@@ -16,5 +21,21 @@
<if test="dto.companyName != null and dto.companyName != '' "> and ct.company_name like concat('%',#{dto.companyName},'%')</if>
</select>
<select id="selectUserList" resultType="com.dsk.system.domain.customer.Customer">
select
ct.customer_id, ct.company_name
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
where ctu.user_id = #{userId}
</select>
<select id="selectByCompanyIdAndUserId" resultType="com.dsk.system.domain.customer.Customer">
select
<include refid="Base_Bean"></include>
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
where ct.company_id = ${companyId} and ctu.user_id = #{userId}
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment