Commit 8414a28f authored by danfuman's avatar danfuman

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents 5e3ac391 a61d231c
...@@ -2,7 +2,7 @@ package com.dsk.web.controller.business; ...@@ -2,7 +2,7 @@ package com.dsk.web.controller.business;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.service.IBusinessBacklogService; import com.dsk.system.service.IBusinessBacklogService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -11,8 +11,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -11,8 +11,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 项目工作待办Controller * 项目工作待办Controller
* *
...@@ -36,8 +34,7 @@ public class BusinessBacklogController extends BaseController ...@@ -36,8 +34,7 @@ public class BusinessBacklogController extends BaseController
public TableDataInfo list(BusinessBacklog businessBacklog) public TableDataInfo list(BusinessBacklog businessBacklog)
{ {
startPage(); startPage();
List<BusinessBacklog> list = businessBacklogService.selectBusinessBacklogList(businessBacklog); return getDataTable(businessBacklogService.selectBusinessBacklogList(businessBacklog));
return getDataTable(list);
} }
/** /**
...@@ -63,6 +60,15 @@ public class BusinessBacklogController extends BaseController ...@@ -63,6 +60,15 @@ public class BusinessBacklogController extends BaseController
return toAjax(businessBacklogService.updateBusinessBacklog(businessBacklog)); return toAjax(businessBacklogService.updateBusinessBacklog(businessBacklog));
} }
/**
* 获取项目工作代办逾期数量
*/
@GetMapping("/overdue/count/{businessId}")
public AjaxResult overdueCount(@PathVariable Integer businessId)
{
return AjaxResult.success(businessBacklogService.overdueCount(businessId));
}
// /** // /**
// * 导出项目工作待办列表 // * 导出项目工作待办列表
// */ // */
......
package com.dsk.web.controller.customer;
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.page.TableDataInfo;
import com.dsk.system.domain.customer.ContactInfo;
import com.dsk.system.domain.customer.dto.ContactInfoSearchDto;
import com.dsk.system.service.IContactInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 联系人(ContactInfo)表控制层
*
* @author makejava
* @since 2023-07-25 17:18:00
*/
@RestController
@RequestMapping("/contact/info")
public class ContactInfoController extends BaseController {
/**
* 服务对象
*/
@Autowired
private IContactInfoService baseService;
/**
* 联系人列表
*/
// @PreAuthorize("@ss.hasPermi('contact:list')")
@GetMapping("/list")
public TableDataInfo selectPageList(ContactInfoSearchDto dto){
startPage();
return getDataTable(baseService.selectList(dto));
}
/**
* 联系人详情
*/
// @PreAuthorize("@ss.hasPermi('contact:info')")
@GetMapping("/{id}")
public AjaxResult info(@PathVariable Long id){
return AjaxResult.success(baseService.selectById(id));
}
/**
* 添加用户联系人
*/
// @PreAuthorize("@ss.hasPermi('contact:add')")
@PostMapping()
@RepeatSubmit()
public AjaxResult add(@RequestBody ContactInfo baen){
return AjaxResult.success(baseService.insert(baen));
}
/**
* 编辑用户联系人
*/
// @PreAuthorize("@ss.hasPermi('contact:edit')")
@PutMapping()
@RepeatSubmit()
public AjaxResult edit(@RequestBody ContactInfo baen){
return AjaxResult.success(baseService.update(baen));
}
/**
* 删除用户联系人
*/
// @PreAuthorize("@ss.hasPermi('contact:del')")
@DeleteMapping("/{id}")
@RepeatSubmit()
public AjaxResult del(@PathVariable("id") Long id){
return AjaxResult.success(baseService.deleteById(id));
}
}
...@@ -5,9 +5,7 @@ import lombok.EqualsAndHashCode; ...@@ -5,9 +5,7 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
@ToString @ToString
...@@ -25,6 +23,11 @@ public class EnterpriseProjectApprovalProjectPageBody extends BasePage { ...@@ -25,6 +23,11 @@ public class EnterpriseProjectApprovalProjectPageBody extends BasePage {
*/ */
private String keys; private String keys;
/**
* 是否为民介0(否),1(是)
*/
private String isProject;
/* /*
* 1金额倒序,2金额正序,3计划开工时间倒序,4计划开工时间正序,13计划完工时间倒序,14计划完工时间正序 * 1金额倒序,2金额正序,3计划开工时间倒序,4计划开工时间正序,13计划完工时间倒序,14计划完工时间正序
......
...@@ -459,10 +459,10 @@ ...@@ -459,10 +459,10 @@
opacity: 0.8; opacity: 0.8;
padding: 0; padding: 0;
} }
.el-input{ .el-input,.el-textarea{
display: inline-block; display: inline-block;
width: 240px; width: 240px;
.el-input__inner{ .el-input__inner,.el-textarea__inner{
width: 100%; width: 100%;
height: 32px; height: 32px;
border-radius: 0px; border-radius: 0px;
...@@ -471,6 +471,11 @@ ...@@ -471,6 +471,11 @@
border-color: #0081FF; border-color: #0081FF;
} }
} }
.el-textarea__inner{
height: 90px;
font-family: inherit;
color: #000;
}
.el-input__suffix{ .el-input__suffix{
height: 32px; height: 32px;
} }
...@@ -508,7 +513,7 @@ ...@@ -508,7 +513,7 @@
} }
} }
.popform.i{ .popform.i{
.el-input{ .el-input,.el-textarea{
width: 335px; width: 335px;
} }
} }
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
mode="vertical" mode="vertical"
> >
<sidebar-item <sidebar-item
v-for="(route, index) in sidebarRouters" v-for="(route, index) in hidechildren"
:key="route.path + index" :key="route.path + index"
:is-collapse="isCollapse" :is-collapse="isCollapse"
:active-menu="activeMenu" :active-menu="activeMenu"
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
:base-path="route.path" :base-path="route.path"
:class="route.fixed&&route.fixed.isFixed?'sideFoot':''" :class="route.fixed&&route.fixed.isFixed?'sideFoot':''"
:style="route.fixed&&route.fixed.isFixed?{'bottom': route.fixed.number*50+'px'}: bottomMenu&&index==routes.length-bottomMenu-2?{'padding-bottom': bottomMenu*50+'px'}:''" :style="route.fixed&&route.fixed.isFixed?{'bottom': route.fixed.number*50+'px'}: bottomMenu&&index==routes.length-bottomMenu-2?{'padding-bottom': bottomMenu*50+'px'}:''"
/> />
</el-menu> </el-menu>
</el-scrollbar> </el-scrollbar>
...@@ -39,7 +39,7 @@ import SidebarItem from "./SidebarItem"; ...@@ -39,7 +39,7 @@ import SidebarItem from "./SidebarItem";
import variables from "@/assets/styles/variables.scss"; import variables from "@/assets/styles/variables.scss";
export default { export default {
components: { SidebarItem, Logo }, components: { SidebarItem, Logo },
data() { data() {
return { return {
...@@ -49,6 +49,18 @@ export default { ...@@ -49,6 +49,18 @@ export default {
computed: { computed: {
...mapState(["settings"]), ...mapState(["settings"]),
...mapGetters(["sidebarRouters", "sidebar"]), ...mapGetters(["sidebarRouters", "sidebar"]),
hidechildren(){
return this.sidebarRouters.map(item=>{
if(item.children?.length){
item.children = item.children.filter(i=>{
if (typeof (i.hidden) == 'boolean' && i.hidden == false || i.path == "index"){
return i
}
})
}
return item
})
},
activeMenu() { activeMenu() {
const route = this.$route; const route = this.$route;
const { meta, path } = route; const { meta, path } = route;
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<img class="icon_img" src="@/assets/images/project/icon_3.png"> <img class="icon_img" src="@/assets/images/project/icon_3.png">
</div> </div>
<div class="icons"> <div class="icons">
<div class="name">今日进客户</div> <div class="name">今日进客户</div>
<div class="count">30</div> <div class="count">30</div>
<img class="icon_img" src="@/assets/images/project/icon_4.png"> <img class="icon_img" src="@/assets/images/project/icon_4.png">
</div> </div>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany"> <el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input> <el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany" :οnkeyup="queryParam.ownerCompany=queryParam.ownerCompany.replace(/^\s+|\s+$/g,'')"></el-input>
<div class="resultlist" v-if="showlist" id="box"> <div class="resultlist" v-if="showlist" id="box">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div> <div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div> </div>
...@@ -115,6 +115,7 @@ ...@@ -115,6 +115,7 @@
}, },
methods:{ methods:{
toradar(){ toradar(){
this.resetForm()
this.$router.push({path:'/radar'}) this.$router.push({path:'/radar'})
}, },
handleALL(event){ handleALL(event){
...@@ -178,11 +179,12 @@ ...@@ -178,11 +179,12 @@
//添加客户 //添加客户
submitForm(formName) { submitForm(formName) {
this.queryParam.userId = this.$store.state.user.userId this.queryParam.userId = this.$store.state.user.userId
if(this.queryParam.investmentAmount!="")
this.queryParam.investmentAmount = parseFloat(this.queryParam.investmentAmount)
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
addProject(this.queryParam).then(result=>{ let param = JSON.parse(JSON.stringify(this.queryParam))
if(param.investmentAmount!="")
param.investmentAmount = parseFloat(param.investmentAmount)
addProject(param).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.$message.success('添加成功!') this.$message.success('添加成功!')
this.resetForm('ruleForm') this.resetForm('ruleForm')
......
...@@ -106,8 +106,8 @@ ...@@ -106,8 +106,8 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>{{projectname}}</span> <span>{{projectname}}</span>
</div> </div>
<el-form class="popform" label-width="137px"> <el-form class="popform" :model="queryParam" ref="ruleForm" label-width="137px" :rules="rules" >
<el-form-item label="联系人姓名:" class="row"> <el-form-item label="联系人姓名:" class="row" prop="name">
<el-input type="text" v-model="queryParam.name" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.name" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系人性别:" class="row"> <el-form-item label="联系人性别:" class="row">
...@@ -157,6 +157,9 @@ ...@@ -157,6 +157,9 @@
}, },
data(){ data(){
return{ return{
rules:{
name:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
},
dialogVisible:false, dialogVisible:false,
isnew:true,//是否新增 isnew:true,//是否新增
textarea:"", textarea:"",
...@@ -200,36 +203,40 @@ ...@@ -200,36 +203,40 @@
}) })
}, },
save(){ save(){
let param = JSON.parse(JSON.stringify(this.queryParam)) this.$refs['ruleForm'].validate((valid) => {
param.sex = parseInt(param.sex) if (valid) {
if(!this.queryParam.phone){ let param = JSON.parse(JSON.stringify(this.queryParam))
this.$message.error('请输入电话号码') param.sex = parseInt(param.sex)
return false if (!this.queryParam.phone) {
} this.$message.error('请输入电话号码')
var regPartton = /1[3-9]+\d{9}/; return false
var regPartton1 = /0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d{7,8}|\(?0\d{2,3}[)-]*\d{7,8}/;
if (!regPartton.test(this.queryParam.phone) && !regPartton1.test(this.queryParam.phone)) {
this.$message.error("请输入正确的电话");
return false
}
if(this.isnew == false){
editLXR(param).then(result=>{
if(result.code == 200){
this.$message.success('保存成功!')
this.getList()
this.dialogVisible = false
} }
}) var regPartton = /1[3-9]+\d{9}/;
} var regPartton1 = /0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d{7,8}|\(?0\d{2,3}[)-]*\d{7,8}/;
if(this.isnew == true){ if (!regPartton.test(this.queryParam.phone) && !regPartton1.test(this.queryParam.phone)) {
addLXR(param).then(result=>{ this.$message.error("请输入正确的电话");
if(result.code == 200){ return false
this.$message.success('新增成功!')
this.getList()
this.dialogVisible = false
} }
}) if (this.isnew == false) {
} editLXR(param).then(result => {
if (result.code == 200) {
this.$message.success('保存成功!')
this.getList()
this.dialogVisible = false
}
})
}
if (this.isnew == true) {
addLXR(param).then(result => {
if (result.code == 200) {
this.$message.success('新增成功!')
this.getList()
this.dialogVisible = false
}
})
}
}
})
}, },
//翻页 //翻页
handleCurrentChange(val) { handleCurrentChange(val) {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-card class="box-card noborder"> <el-card class="box-card noborder">
<div class="cardtitles">相关企业</div> <div class="cardtitles">相关企业</div>
<div class="searchbtns"> <div class="searchbtns">
<el-select class="select" placeholder="企业类型" clearable v-model="searchParam.companyType" @change="handleCurrentChange(1)"> <el-select class="select" placeholder="企业类型" clearable v-model="searchParam.companyRole" @change="handleCurrentChange(1)">
<el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
<div class="searchInput small"> <div class="searchInput small">
...@@ -73,9 +73,9 @@ ...@@ -73,9 +73,9 @@
label="备注" label="备注"
width=""> width="">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip v-if="scope.row.responsiblePerson" class="item" effect="dark" :content="scope.row.responsiblePerson" placement="top"> <div class="showremark" v-if="scope.row.remark">
<div class="showremark">{{scope.row.responsiblePerson}}</div> <el-tooltip class="item" effect="dark" :content="scope.row.remark" placement="top"><span>{{scope.row.remark}}</span></el-tooltip>
</el-tooltip> </div>
<div v-else>--</div> <div v-else>--</div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -141,8 +141,8 @@ ...@@ -141,8 +141,8 @@
<span>新建相关企业</span> <span>新建相关企业</span>
</div> </div>
<el-form class="popform i":model="queryParam" label-width="85px" :rules="rules" ref="ruleForm" > <el-form class="popform i":model="queryParam" label-width="85px" :rules="rules" ref="ruleForm" >
<el-form-item label="企业角色:" prop="companyType" class="row"> <el-form-item label="企业角色:" prop="companyRole" class="row">
<el-select placeholder="请选择" v-model="queryParam.companyType"> <el-select placeholder="请选择" v-model="queryParam.companyRole">
<el-option v-for="(item,index) in companytype" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in companytype" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -162,7 +162,14 @@ ...@@ -162,7 +162,14 @@
<el-input type="text" v-model="queryParam.phonenumber" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.phonenumber" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注说明:" class="row"> <el-form-item label="备注说明:" class="row">
<el-input type="text" v-model="queryParam.responsiblePerson" placeholder="请输入"></el-input> <el-input
type="textarea"
placeholder="请输入"
v-model="queryParam.remark"
maxlength="200"
show-word-limit
>
</el-input>
</el-form-item> </el-form-item>
<div class="popbot"> <div class="popbot">
<div class="btn btn_cancel h32" @click="cancel()">返回</div> <div class="btn btn_cancel h32" @click="cancel()">返回</div>
...@@ -176,10 +183,11 @@ ...@@ -176,10 +183,11 @@
</template> </template>
<script> <script>
import "@/assets/styles/project.scss" import '@/assets/styles/project.scss'
import {getXGQY,addXGQY,delXGQY,saveXGQY} from '@/api/project/project' import { addXGQY, delXGQY, getXGQY, saveXGQY } from '@/api/project/project'
import {getDictType,getEnterprise} from '@/api/main' import { getDictType, getEnterprise } from '@/api/main'
import skeleton from './skeleton' import skeleton from './skeleton'
export default { export default {
components:{skeleton}, components:{skeleton},
name: 'xgqy', name: 'xgqy',
...@@ -200,7 +208,7 @@ ...@@ -200,7 +208,7 @@
tableData: [], tableData: [],
typename:"对接深度/竞争力度", typename:"对接深度/竞争力度",
rules:{ rules:{
companyType:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },], companyRole:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
companyName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },], companyName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },],
phonenumber: [ phonenumber: [
{ {
...@@ -215,15 +223,16 @@ ...@@ -215,15 +223,16 @@
businessId:this.detailId ? this.detailId : this.$route.query.id, businessId:this.detailId ? this.detailId : this.$route.query.id,
companyId:'', companyId:'',
companyName:'', companyName:'',
companyType:'', companyRole:'',
responsiblePerson:'', responsiblePerson:'',
depth:'', depth:'',
remark:'',
}, },
searchParam:{ searchParam:{
pageSize:20, pageSize:20,
pageNum:1, pageNum:1,
businessId:this.detailId ? this.detailId : this.$route.query.id, businessId:this.detailId ? this.detailId : this.$route.query.id,
companyType:"", companyRole:"",
companyName:'', companyName:'',
}, },
ondel:-1, ondel:-1,
...@@ -336,9 +345,10 @@ ...@@ -336,9 +345,10 @@
businessId:this.detailId ? this.detailId : this.$route.query.id, businessId:this.detailId ? this.detailId : this.$route.query.id,
companyId:'', companyId:'',
companyName:'', companyName:'',
companyType:'', companyRole:'',
responsiblePerson:'', responsiblePerson:'',
depth:'', depth:'',
remark:'',
} }
}, },
} }
......
...@@ -191,6 +191,7 @@ export default { ...@@ -191,6 +191,7 @@ export default {
components:{addproject,batchimport,skeleton}, components:{addproject,batchimport,skeleton},
data() { data() {
return { return {
encodeStr,
types:'project', types:'project',
props:{multiple: true}, props:{multiple: true},
activeName:'first', activeName:'first',
......
package com.dsk.common.core.domain.entity; package com.dsk.system.domain.business;
import java.util.Date; import java.util.Date;
import com.dsk.common.core.domain.BaseEntity; import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.dsk.common.annotation.Excel; import com.dsk.common.annotation.Excel;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
...@@ -14,6 +15,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; ...@@ -14,6 +15,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @author lxl * @author lxl
* @date 2023-05-17 * @date 2023-05-17
*/ */
@Data
public class BusinessBacklog extends BaseEntity public class BusinessBacklog extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -34,82 +36,17 @@ public class BusinessBacklog extends BaseEntity ...@@ -34,82 +36,17 @@ public class BusinessBacklog extends BaseEntity
private String task; private String task;
/** 完成时间 */ /** 完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date finishTime; private Date finishTime;
/** 完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "到期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date dueTime;
/** 状态(2已完成,1进行中,0逾期) */ /** 状态(2已完成,1进行中,0逾期) */
@Excel(name = "状态(2已完成,1进行中,0逾期)") @Excel(name = "状态 0:进行中 1:已到期")
private Integer state; 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.system.domain.business.vo;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 项目工作待办对象 business_backlog
*
* @author lxl
* @date 2023-05-17
*/
@Data
public class BusinessBacklogListVo {
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Integer id;
/** 项目id */
private Integer businessId;
/** 关联客户 */
private String target;
/** 待办工作内容 */
private String task;
/** 完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date finishTime;
/** 完成时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "到期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date dueTime;
/** 状态(2已完成,1进行中,0逾期) */
@Excel(name = "状态 0:进行中 1:已到期 2:已逾期")
private Integer state;
}
package com.dsk.system.domain.customer;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 用户联系人(CustomerContact)实体类
*
* @author makejava
* @since 2023-07-25 17:18:00
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("contact_info")
public class ContactInfo implements Serializable {
private static final long serialVersionUID = -22461377492423075L;
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* 客户id
*/
private String customerId;
/**
* 项目id
*/
private Integer projectId;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 角色
*/
private String role;
/**
* 职位
*/
private String position;
/**
* 联系方式
*/
private String contactInformation;
/**
* 企业id
*/
private Integer companyId;
/**
* 城投企业id
*/
private String uipId;
/**
* 企业名称
*/
private String companyName;
/**
* 备注
*/
private String remark;
private String createBy;
private Date createTime;
private String updateBy;
private Long updateId;
private Date updateTime;
}
package com.dsk.system.domain.customer.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author lcl
* @create 2023/5/16
*/
@Data
public class ContactInfoSearchDto implements Serializable {
/**
* 项目id
*/
private Integer projectId;
/**
* 企业名称
*/
private String companyName;
/**
* 客户id
*/
private String customerId;
}
...@@ -10,10 +10,22 @@ import java.io.Serializable; ...@@ -10,10 +10,22 @@ import java.io.Serializable;
*/ */
@Data @Data
public class CustomerSearchDto implements Serializable { public class CustomerSearchDto implements Serializable {
/**
* 企业id
*/
private Integer companyId;
/**
* 城投企业id
*/
private String uipId;
/** /**
* 企业名称 * 企业名称
*/ */
private String companyName; private String companyName;
/**
* 客户id
*/
private String customerId;
/** /**
* 用户id * 用户id
*/ */
......
package com.dsk.system.domain.customer.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 用户联系人(CustomerContact)实体类
*
* @author makejava
* @since 2023-07-25 17:18:00
*/
@Data
public class ContactInfoListVo implements Serializable {
private static final long serialVersionUID = -22461377492423075L;
private Long id;
/**
* 客户id
*/
private String customerId;
/**
* 项目id
*/
private Integer projectId;
/**
* 项目名称
*/
private String projectName;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 角色
*/
private String role;
/**
* 职位
*/
private String position;
/**
* 联系方式
*/
private String contactInformation;
/**
* 企业id
*/
private Integer companyId;
/**
* 城投企业id
*/
private String uipId;
/**
* 企业名称
*/
private String companyName;
/**
* 更新人
*/
private String updateBy;
}
package com.dsk.system.mapper; package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import java.util.List; import java.util.List;
/** /**
* 项目工作待办Mapper接口 * 项目工作待办Mapper接口
* *
* @author lxl * @author lxl
* @date 2023-05-17 * @date 2023-05-17
*/ */
public interface BusinessBacklogMapper public interface BusinessBacklogMapper
{ {
/** /**
* 查询项目工作待办 * 查询项目工作待办
* *
* @param id 项目工作待办主键 * @param id 项目工作待办主键
* @return 项目工作待办 * @return 项目工作待办
*/ */
...@@ -22,15 +23,15 @@ public interface BusinessBacklogMapper ...@@ -22,15 +23,15 @@ public interface BusinessBacklogMapper
/** /**
* 查询项目工作待办列表 * 查询项目工作待办列表
* *
* @param businessBacklog 项目工作待办 * @param businessBacklog 项目工作待办
* @return 项目工作待办集合 * @return 项目工作待办集合
*/ */
public List<BusinessBacklog> selectBusinessBacklogList(BusinessBacklog businessBacklog); public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog);
/** /**
* 新增项目工作待办 * 新增项目工作待办
* *
* @param businessBacklog 项目工作待办 * @param businessBacklog 项目工作待办
* @return 结果 * @return 结果
*/ */
...@@ -38,7 +39,7 @@ public interface BusinessBacklogMapper ...@@ -38,7 +39,7 @@ public interface BusinessBacklogMapper
/** /**
* 修改项目工作待办 * 修改项目工作待办
* *
* @param businessBacklog 项目工作待办 * @param businessBacklog 项目工作待办
* @return 结果 * @return 结果
*/ */
...@@ -46,7 +47,7 @@ public interface BusinessBacklogMapper ...@@ -46,7 +47,7 @@ public interface BusinessBacklogMapper
/** /**
* 删除项目工作待办 * 删除项目工作待办
* *
* @param id 项目工作待办主键 * @param id 项目工作待办主键
* @return 结果 * @return 结果
*/ */
...@@ -54,15 +55,12 @@ public interface BusinessBacklogMapper ...@@ -54,15 +55,12 @@ public interface BusinessBacklogMapper
/** /**
* 批量删除项目工作待办 * 批量删除项目工作待办
* *
* @param ids 需要删除的数据主键集合 * @param ids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deleteBusinessBacklogByIds(Long[] ids); public int deleteBusinessBacklogByIds(Long[] ids);
/** Integer overdueCount(Integer businessId);
* 修改工作待办逾期状态
* @return
*/
int updateBacklogState();
} }
package com.dsk.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.system.domain.customer.ContactInfo;
import com.dsk.system.domain.customer.dto.ContactInfoSearchDto;
import com.dsk.system.domain.customer.vo.ContactInfoListVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 用户联系人(CustomerContact)表数据库访问层
*
* @author makejava
* @since 2023-07-25 17:18:05
*/
@Mapper
public interface ContactInfoMapper extends BaseMapper<ContactInfo> {
List<ContactInfoListVo> selectPageList(ContactInfoSearchDto dto);
}
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import java.util.List; import java.util.List;
/** /**
* 项目工作待办Service接口 * 项目工作待办Service接口
* *
* @author llx * @author llx
* @date 2023-05-17 * @date 2023-05-17
*/ */
public interface IBusinessBacklogService public interface IBusinessBacklogService
{ {
/** /**
* 查询项目工作待办 * 查询项目工作待办
* *
* @param id 项目工作待办主键 * @param id 项目工作待办主键
* @return 项目工作待办 * @return 项目工作待办
*/ */
...@@ -22,15 +23,15 @@ public interface IBusinessBacklogService ...@@ -22,15 +23,15 @@ public interface IBusinessBacklogService
/** /**
* 查询项目工作待办列表 * 查询项目工作待办列表
* *
* @param businessBacklog 项目工作待办 * @param businessBacklog 项目工作待办
* @return 项目工作待办集合 * @return 项目工作待办集合
*/ */
public List<BusinessBacklog> selectBusinessBacklogList(BusinessBacklog businessBacklog); public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog);
/** /**
* 新增项目工作待办 * 新增项目工作待办
* *
* @param businessBacklog 项目工作待办 * @param businessBacklog 项目工作待办
* @return 结果 * @return 结果
*/ */
...@@ -38,7 +39,7 @@ public interface IBusinessBacklogService ...@@ -38,7 +39,7 @@ public interface IBusinessBacklogService
/** /**
* 修改项目工作待办 * 修改项目工作待办
* *
* @param businessBacklog 项目工作待办 * @param businessBacklog 项目工作待办
* @return 结果 * @return 结果
*/ */
...@@ -46,7 +47,7 @@ public interface IBusinessBacklogService ...@@ -46,7 +47,7 @@ public interface IBusinessBacklogService
/** /**
* 批量删除项目工作待办 * 批量删除项目工作待办
* *
* @param ids 需要删除的项目工作待办主键集合 * @param ids 需要删除的项目工作待办主键集合
* @return 结果 * @return 结果
*/ */
...@@ -54,9 +55,12 @@ public interface IBusinessBacklogService ...@@ -54,9 +55,12 @@ public interface IBusinessBacklogService
/** /**
* 删除项目工作待办信息 * 删除项目工作待办信息
* *
* @param id 项目工作待办主键 * @param id 项目工作待办主键
* @return 结果 * @return 结果
*/ */
public int deleteBusinessBacklogById(Long id); public int deleteBusinessBacklogById(Long id);
Integer overdueCount(Integer businessId);
} }
package com.dsk.system.service;
import com.dsk.system.domain.customer.ContactInfo;
import com.dsk.system.domain.customer.dto.ContactInfoSearchDto;
import com.dsk.system.domain.customer.vo.ContactInfoListVo;
import java.util.List;
/**
* 用户联系人(CustomerContact)表服务接口
*
* @author makejava
* @since 2023-07-25 17:18:05
*/
public interface IContactInfoService {
/**
* 查询数据列表
*/
List<ContactInfoListVo> selectList(ContactInfoSearchDto dto);
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
ContactInfo selectById(Long id);
/**
* 新增数据
*
* @param bean 实例对象
* @return 实例对象
*/
boolean insert(ContactInfo bean);
/**
* 修改数据
*
* @param bean 实例对象
* @return 实例对象
*/
boolean update(ContactInfo bean);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Long id);
}
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import com.dsk.common.core.domain.entity.BusinessBacklog; import cn.hutool.core.bean.BeanException;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.common.exception.base.BaseException; import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import com.dsk.system.mapper.BusinessBacklogMapper; import com.dsk.system.mapper.BusinessBacklogMapper;
import com.dsk.system.service.IBusinessBacklogService; import com.dsk.system.service.IBusinessBacklogService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -22,9 +25,8 @@ import java.util.List; ...@@ -22,9 +25,8 @@ import java.util.List;
*/ */
@Service @Service
@Slf4j @Slf4j
public class BusinessBacklogServiceImpl implements IBusinessBacklogService public class BusinessBacklogServiceImpl implements IBusinessBacklogService {
{ @Resource
@Autowired
private BusinessBacklogMapper businessBacklogMapper; private BusinessBacklogMapper businessBacklogMapper;
/** /**
...@@ -34,8 +36,7 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService ...@@ -34,8 +36,7 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
* @return 项目工作待办 * @return 项目工作待办
*/ */
@Override @Override
public BusinessBacklog selectBusinessBacklogById(Integer id) public BusinessBacklog selectBusinessBacklogById(Integer id) {
{
return businessBacklogMapper.selectBusinessBacklogById(id); return businessBacklogMapper.selectBusinessBacklogById(id);
} }
...@@ -46,8 +47,10 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService ...@@ -46,8 +47,10 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
* @return 项目工作待办 * @return 项目工作待办
*/ */
@Override @Override
public List<BusinessBacklog> selectBusinessBacklogList(BusinessBacklog businessBacklog) public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog) {
{ if (ObjectUtil.isEmpty(businessBacklog.getBusinessId())) {
throw new BeanException("项目id不能为空!");
}
return businessBacklogMapper.selectBusinessBacklogList(businessBacklog); return businessBacklogMapper.selectBusinessBacklogList(businessBacklog);
} }
...@@ -59,12 +62,8 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService ...@@ -59,12 +62,8 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
*/ */
@Override @Override
@Transactional @Transactional
public int insertBusinessBacklog(BusinessBacklog businessBacklog) public int insertBusinessBacklog(BusinessBacklog businessBacklog) {
{ if (businessBacklog.getDueTime().before(new Date())) throw new BaseException("到期时间必须大于当前时间");
if(businessBacklog.getFinishTime().before(new Date())) throw new BaseException("完成时间必须大于当前时间");
businessBacklog.setCreateTime(DateUtils.getNowDate());
//新增记录,状态默认 进行中
businessBacklog.setState(1);
return businessBacklogMapper.insertBusinessBacklog(businessBacklog); return businessBacklogMapper.insertBusinessBacklog(businessBacklog);
} }
...@@ -76,16 +75,23 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService ...@@ -76,16 +75,23 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
*/ */
@Override @Override
@Transactional @Transactional
public int updateBusinessBacklog(BusinessBacklog businessBacklog) public int updateBusinessBacklog(BusinessBacklog businessBacklog) {
{ if (ObjectUtil.isEmpty(businessBacklog.getId())) {
//从完成状态修改到为完成,判断是否已逾期 throw new BeanException("id不能为空!");
BusinessBacklog backlog = selectBusinessBacklogById(businessBacklog.getId()); }
if (businessBacklog.getState() == 1 && backlog.getState() == 2 && backlog.getFinishTime().before(new Date())) { if (ObjectUtil.isEmpty(businessBacklog.getState())) {
businessBacklog.setState(0); throw new BeanException("状态不能为空!");
businessBacklog.setUpdateTime(new Date()); }
return businessBacklogMapper.updateBusinessBacklog(businessBacklog); switch (businessBacklog.getState()) {
case 0:
businessBacklog.setFinishTime(null);
break;
case 1:
businessBacklog.setFinishTime(new Date());
break;
default:
throw new BeanException("状态参数错误!");
} }
businessBacklog.setUpdateTime(new Date());
return businessBacklogMapper.updateBusinessBacklog(businessBacklog); return businessBacklogMapper.updateBusinessBacklog(businessBacklog);
} }
...@@ -96,8 +102,7 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService ...@@ -96,8 +102,7 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteBusinessBacklogByIds(Long[] ids) public int deleteBusinessBacklogByIds(Long[] ids) {
{
return businessBacklogMapper.deleteBusinessBacklogByIds(ids); return businessBacklogMapper.deleteBusinessBacklogByIds(ids);
} }
...@@ -108,17 +113,12 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService ...@@ -108,17 +113,12 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteBusinessBacklogById(Long id) public int deleteBusinessBacklogById(Long id) {
{
return businessBacklogMapper.deleteBusinessBacklogById(id); return businessBacklogMapper.deleteBusinessBacklogById(id);
} }
/** @Override
* 定时修改工作待办逾期状态 public Integer overdueCount(Integer businessId) {
*/ return businessBacklogMapper.overdueCount(businessId);
@Scheduled(cron = "0 0 0 * * ?")//每天凌晨0点执行一次
public void judgeOverdue() {
int updateBacklogState = businessBacklogMapper.updateBacklogState();
if (updateBacklogState > 1) log.info("定时修改工作待办逾期状态");
} }
} }
...@@ -264,7 +264,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -264,7 +264,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
if (!CheckUtils.isPhone(businessInfo.getConstructionPhone()) || !CheckUtils.isPhone(businessInfo.getSupervisorPhone())) if (!CheckUtils.isPhone(businessInfo.getConstructionPhone()) || !CheckUtils.isPhone(businessInfo.getSupervisorPhone()))
throw new BaseException("500", "请输入正确的电话号码"); throw new BaseException("500", "请输入正确的电话号码");
} }
businessInfo.setUpdateTime(DateUtils.getNowDate());
//查询企业的城投id和建设库id //查询企业的城投id和建设库id
Map map = queryUipIdOrCid(businessInfo.getConstructionUnit()); Map map = queryUipIdOrCid(businessInfo.getConstructionUnit());
if (map.containsKey("jskEid")) { if (map.containsKey("jskEid")) {
......
package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanException;
import com.dsk.common.core.domain.model.LoginUser;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.domain.customer.ContactInfo;
import com.dsk.system.domain.customer.dto.ContactInfoSearchDto;
import com.dsk.system.domain.customer.vo.ContactInfoListVo;
import com.dsk.system.mapper.ContactInfoMapper;
import com.dsk.system.service.IContactInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.List;
/**
* 用户联系人(CustomerContact)表服务实现类
*
* @author makejava
* @since 2023-07-25 17:18:04
*/
@Slf4j
@Service
public class ContactInfoServiceImpl implements IContactInfoService {
@Resource
private ContactInfoMapper baseMapper;
@Override
public List<ContactInfoListVo> selectList(ContactInfoSearchDto dto) {
return baseMapper.selectPageList(dto);
}
@Override
public ContactInfo selectById(Long id) {
return baseMapper.selectById(id);
}
@Override
public boolean insert(ContactInfo bean) {
verifyParameter(bean);
return baseMapper.insert(bean) > 0;
}
@Override
public boolean update(ContactInfo bean) {
if (ObjectUtils.isEmpty(bean.getId())) throw new BeanException("id不能为空!");
verifyParameter(bean);
return baseMapper.updateById(bean) > 0;
}
@Override
public boolean deleteById(Long id) {
return baseMapper.deleteById(id) > 0;
}
/**
* 参数验证
*/
private void verifyParameter(ContactInfo bean) {
// if (ObjectUtils.isEmpty(bean.getCustomerId())) throw new BeanException("客户id不能为空!");
LoginUser loginUser = SecurityUtils.getLoginUser();
bean.setCreateBy(loginUser.getUser().getNickName());
bean.setUpdateId(loginUser.getUserId());
bean.setUpdateBy(loginUser.getUser().getNickName());
}
}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.system.mapper.BusinessBacklogMapper"> <mapper namespace="com.dsk.system.mapper.BusinessBacklogMapper">
<resultMap type="com.dsk.common.core.domain.entity.BusinessBacklog" id="BusinessBacklogResult"> <resultMap type="com.dsk.system.domain.business.BusinessBacklog" id="BusinessBacklogResult">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="businessId" column="business_id"/> <result property="businessId" column="business_id"/>
<result property="target" column="target"/> <result property="target" column="target"/>
...@@ -21,22 +21,21 @@ ...@@ -21,22 +21,21 @@
target, target,
task, task,
finish_time, finish_time,
state, due_time,
if(due_time &lt; now() and state = 0, 2 ,state) state,
create_time, create_time,
update_time update_time
from business_backlog from business_backlog
</sql> </sql>
<select id="selectBusinessBacklogList" parameterType="com.dsk.common.core.domain.entity.BusinessBacklog" <select id="selectBusinessBacklogList" parameterType="com.dsk.system.domain.business.vo.BusinessBacklogListVo"
resultMap="BusinessBacklogResult"> resultMap="BusinessBacklogResult">
<include refid="selectBusinessBacklogVo"/> <include refid="selectBusinessBacklogVo"/>
<where> where business_id = #{businessId}
<if test="businessId != null ">and business_id = #{businessId}</if> <if test="target != null and target != ''">and target = #{target}</if>
<if test="target != null and target != ''">and target = #{target}</if> <if test="task != null and task != ''">and task = #{task}</if>
<if test="task != null and task != ''">and task = #{task}</if> <if test="finishTime != null ">and finish_time = #{finishTime}</if>
<if test="finishTime != null ">and finish_time = #{finishTime}</if> <if test="state != null ">and state = #{state}</if>
<if test="state != null ">and state = #{state}</if>
</where>
ORDER BY create_time DESC ORDER BY create_time DESC
</select> </select>
...@@ -45,47 +44,25 @@ ...@@ -45,47 +44,25 @@
where id = #{id} where id = #{id}
</select> </select>
<insert id="insertBusinessBacklog" parameterType="com.dsk.common.core.domain.entity.BusinessBacklog" <insert id="insertBusinessBacklog" parameterType="com.dsk.system.domain.business.BusinessBacklog"
useGeneratedKeys="true" keyProperty="id"> useGeneratedKeys="true" keyProperty="id">
insert into business_backlog insert into business_backlog
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="businessId != null">business_id,</if> <if test="businessId != null">business_id,</if>
<if test="target != null">target,</if> <if test="target != null">target,</if>
<if test="task != null">task,</if> <if test="task != null">task,</if>
<if test="finishTime != null">finish_time,</if> <if test="dueTime != null">due_time,</if>
<if test="state != null">state,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if> <if test="businessId != null">#{businessId},</if>
<if test="target != null">#{target},</if> <if test="target != null">#{target},</if>
<if test="task != null">#{task},</if> <if test="task != null">#{task},</if>
<if test="finishTime != null">#{finishTime},</if> <if test="dueTime != null">#{dueTime},</if>
<if test="state != null">#{state},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim> </trim>
</insert> </insert>
<update id="updateBusinessBacklog" parameterType="com.dsk.common.core.domain.entity.BusinessBacklog"> <update id="updateBusinessBacklog" parameterType="com.dsk.system.domain.business.BusinessBacklog">
update business_backlog update business_backlog set finish_time = #{finishTime}, state = #{state} where id = #{id}
<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>
<update id="updateBacklogState">
update business_backlog
set state = 0
where state = 1
and finish_time &lt; CURRENT_TIMESTAMP
</update> </update>
<delete id="deleteBusinessBacklogById" parameterType="Long"> <delete id="deleteBusinessBacklogById" parameterType="Long">
...@@ -100,4 +77,8 @@ ...@@ -100,4 +77,8 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
</mapper>
\ No newline at end of file <select id="overdueCount" resultType="java.lang.Integer">
select count(id) from business_backlog where business_id = #{businessId} and due_time &lt; now() and state = 0
</select>
</mapper>
...@@ -356,8 +356,6 @@ ...@@ -356,8 +356,6 @@
<if test="projectType != null">project_type = #{projectType},</if> <if test="projectType != null">project_type = #{projectType},</if>
<if test="projectCategory != null">project_category = #{projectCategory},</if> <if test="projectCategory != null">project_category = #{projectCategory},</if>
<if test="isPrivate != null">is_private = #{isPrivate},</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="status != null">status = #{status},</if>
<if test="customerId != null">customer_id = #{customerId},</if> <if test="customerId != null">customer_id = #{customerId},</if>
<if test="evaluationBidWay != null">evaluation_bid_way = #{evaluationBidWay},</if> <if test="evaluationBidWay != null">evaluation_bid_way = #{evaluationBidWay},</if>
......
<?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.ContactInfoMapper">
<select id="selectPageList" resultType="com.dsk.system.domain.customer.vo.ContactInfoListVo">
select
cc.id, cc.customer_id, cc.project_id, bi.project_name, cc.name, cc.sex, cc.role,
cc.position, cc.contact_information, cc.company_id, cc.uip_id, cc.company_name,
cc.update_by
from contact_info cc
left join business_info bi on cc.project_id = bi.id
<where>
<if test="cc.customerId != null and cc.customerId !='' "> and (cc.customer_id = #{customerId} or cc.company_name =#{companyName})</if>
<if test="cc.projectId != null "> and cc.project_id = #{projectId} </if>
</where>
order by cc.create_time desc
</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