diff --git a/ruoyi-ui/src/api/project/projectDeptWroks.js b/ruoyi-ui/src/api/project/projectDeptWroks.js index 39619830..ab1c5d6b 100644 --- a/ruoyi-ui/src/api/project/projectDeptWroks.js +++ b/ruoyi-ui/src/api/project/projectDeptWroks.js @@ -9,9 +9,9 @@ export function listProjectDeptWroks(query) { }) } -export function listProjectDeptWroks2(query) { +export function deptWroksViewData(query) { return request({ - url: '/project/projectDeptWroks/list2', + url: '/project/projectDeptWroks/viewData', method: 'get', params: query }) diff --git a/ruoyi-ui/src/views/project/projectDeptWroks/projectDeptWroksDrawer.vue b/ruoyi-ui/src/views/project/projectDeptWroks/projectDeptWroksDrawer.vue index ce01e3ae..f9535bb1 100644 --- a/ruoyi-ui/src/views/project/projectDeptWroks/projectDeptWroksDrawer.vue +++ b/ruoyi-ui/src/views/project/projectDeptWroks/projectDeptWroksDrawer.vue @@ -10,7 +10,7 @@ - + 0) { this.activeName = this.nodes[0].unitId + ""; - listProjectDeptWroks2({ - projectId: this.project.id, - }).then((d) => { - this.form = d.rows[0]; - this.form.oldServicePersonnel = this.form.servicePersonnel; - this.form.oldSupervisorPersonnel = this.form.supervisorPersonnel; - this.form.oldContractorPersonnel = this.form.contractorPersonnel; - }); + this.loadData(); + } + }); + }, + // 页签点击 + loadData() { + deptWroksViewData({ + projectId: this.project.id, + nowDept: this.activeName, + }).then((d) => { + if (d.rows.length > 0) { + this.form = d.rows[0]; + this.form.oldServicePersonnel = this.form.servicePersonnel; + this.form.oldSupervisorPersonnel = this.form.supervisorPersonnel; + this.form.oldContractorPersonnel = this.form.contractorPersonnel; } }); }, diff --git a/ruoyi-ui/src/views/project/surProject/index.vue b/ruoyi-ui/src/views/project/surProject/index.vue index 044ecf90..aa534759 100644 --- a/ruoyi-ui/src/views/project/surProject/index.vue +++ b/ruoyi-ui/src/views/project/surProject/index.vue @@ -198,7 +198,7 @@ - + - - +
{{ title + " 【今日出勤】" }}
- + - @@ -37,7 +37,7 @@
@@ -45,7 +45,7 @@ @@ -55,7 +55,7 @@ style="width: 80%" v-model="form.servicePersonnel" :min="0" - :max="10000" + :max="vform.servicePersonnel" label="请输入劳务人员" > @@ -64,7 +64,7 @@ style="width: 80%" v-model="form.supervisorPersonnel" :min="0" - :max="10000" + :max="vform.supervisorPersonnel" label="请输入管理人员" > @@ -73,7 +73,7 @@ style="width: 80%" v-model="form.contractorPersonnel" :min="0" - :max="10000" + :max="vform.contractorPersonnel" label="请输入总包人员" > @@ -90,9 +90,14 @@ import { mapGetters } from "vuex"; import { unitList, - listProjectDeptWroks2, + deptWroksViewData, updateProjectDeptWroks, } from "@/api/project/projectDeptWroks"; +import { + listSurProjectAttendance, + updateSurProjectAttendance, +} from "@/api/project/surProjectAttendance"; + export default { name: "RuoyiUiProjectDeptWroksDrawer", data() { @@ -101,8 +106,16 @@ export default { project: null, title: "", nodes: [], - vform: {}, - form: {}, + vform: { + servicePersonnel: 0, + supervisorPersonnel: 0, + contractorPersonnel: 0, + }, + form: { + servicePersonnel: null, + supervisorPersonnel: null, + contractorPersonnel: null, + }, rules: {}, activeName: "", }; @@ -114,7 +127,7 @@ export default { methods: { doOk() { - updateProjectDeptWroks(this.form).then((response) => { + updateSurProjectAttendance(this.form).then((response) => { this.$modal.msgSuccess("保存成功"); this.isOpen = false; }); @@ -123,21 +136,40 @@ export default { this.isOpen = false; }, show(project) { + this.form.servicePersonnel = null; + this.form.supervisorPersonnel = null; + this.form.contractorPersonnel = null; this.project = project; this.title = project.projectName; this.isOpen = true; unitList({ projectId: project.id, unitType: 2, - }).then((d) => { - this.nodes = d.rows; + }).then((d1) => { + this.nodes = d1.rows; if (this.nodes.length > 0) { this.activeName = this.nodes[0].unitId + ""; - listProjectDeptWroks2({ - projectId: this.project.id, - }).then((d) => { - this.vform = d.rows[0]; - }); + this.loadData(); + } + }); + }, + loadData() { + deptWroksViewData({ + projectId: this.project.id, + nowDept: this.activeName, + }).then((d2) => { + this.vform = d2.rows[0]; + }); + listSurProjectAttendance({ + projectId: this.project.id, + deptId: this.activeName, + workDate: "" + new Date(), + }).then((d3) => { + if (d3.rows.length > 0) { + this.form = d3.rows[0]; + } else { + this.form.projectId = this.project.id; + this.form.deptId = this.activeName; } }); }, diff --git a/ruoyi-ui/src/views/project/surProjectAttendance/index.vue b/ruoyi-ui/src/views/project/surProjectAttendance/index.vue index f99808c8..53aef322 100644 --- a/ruoyi-ui/src/views/project/surProjectAttendance/index.vue +++ b/ruoyi-ui/src/views/project/surProjectAttendance/index.vue @@ -1,9 +1,9 @@
- + - - + + @@ -217,7 +217,7 @@ export default { queryParams: { pageNum: 1, pageSize: 10, - prijectId: null, + projectId: null, deptId: null, workDate: null, isDel: null, @@ -256,7 +256,7 @@ export default { reset() { this.form = { id: null, - prijectId: null, + projectId: null, deptId: null, servicePersonnel: null, supervisorPersonnel: null, diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectDeptWroksController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectDeptWroksController.java index ff701a86..17e28c7d 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectDeptWroksController.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectDeptWroksController.java @@ -53,13 +53,7 @@ public class SurProjectDeptWroksController extends BaseController @GetMapping("/list") public TableDataInfo list(SurProjectDeptWroks surProjectDeptWroks) { - surProjectDeptWroks.setNowRole(Convert.toStr(getUserFirstRole())); - if(SysRoleEnum.ZGS.getCode().equals(surProjectDeptWroks.getNowRole())){ - surProjectDeptWroks.setNowDept(Convert.toStr(sysDeptService.getZGSDeptId(getDeptId()))); - }else{ - surProjectDeptWroks.setNowDept(Convert.toStr(getDeptId())); - } - surProjectDeptWroks.setNowUser(Convert.toStr(getUserId())); + startPage(); List list = surProjectDeptWroksService.selectSurProjectDeptWroksList(surProjectDeptWroks); return getDataTable(list); } @@ -68,16 +62,9 @@ public class SurProjectDeptWroksController extends BaseController * 查询项目部门在册人员列表 */ @PreAuthorize("@ss.hasPermi('project:projectDeptWroks:list')") - @GetMapping("/list2") - public TableDataInfo list2(SurProjectDeptWroks surProjectDeptWroks) + @GetMapping("/viewData") + public TableDataInfo viewData(SurProjectDeptWroks surProjectDeptWroks) { - surProjectDeptWroks.setNowRole(Convert.toStr(getUserFirstRole())); - if(SysRoleEnum.ZGS.getCode().equals(surProjectDeptWroks.getNowRole())){ - surProjectDeptWroks.setNowDept(Convert.toStr(sysDeptService.getZGSDeptId(getDeptId()))); - }else{ - surProjectDeptWroks.setNowDept(Convert.toStr(getDeptId())); - } - surProjectDeptWroks.setNowUser(Convert.toStr(getUserId())); List list = surProjectDeptWroksService.selectSurProjectDeptWroksListv2(surProjectDeptWroks); return getDataTable(list); } @@ -89,6 +76,10 @@ public class SurProjectDeptWroksController extends BaseController @GetMapping("/unitList") public TableDataInfo unitList(SurProjectUnitInfo surProjectUnitInfo) { + surProjectUnitInfo.setNowRole(Convert.toStr(getUserFirstRole())); + if(SysRoleEnum.ZBDW.getCode().equals(surProjectUnitInfo.getNowRole())){ + surProjectUnitInfo.setUnitId(getDeptId()); + } return getDataTable(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo)); } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectWorkAttendanceController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectWorkAttendanceController.java index db2d92b5..84e7379b 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectWorkAttendanceController.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectWorkAttendanceController.java @@ -1,5 +1,6 @@ package com.yanzhu.jh.project.controller; +import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -48,6 +49,20 @@ public class SurProjectWorkAttendanceController extends BaseController return getDataTable(list); } + /** + * 查询项目出勤列表 + */ + @PreAuthorize("@ss.hasPermi('project:surProjectAttendance:list')") + @GetMapping("/viewData") + public TableDataInfo viewData(SurProjectWorkAttendance surProjectWorkAttendance) + { + if(surProjectWorkAttendance.getWorkDate()==null){ + surProjectWorkAttendance.setWorkDate(new Date()); + } + List list = surProjectWorkAttendanceService.selectSurProjectWorkAttendanceList(surProjectWorkAttendance); + return getDataTable(list); + } + /** * 导出项目出勤列表 */ diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProject.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProject.java index cac4e2bf..39ee1a04 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProject.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProject.java @@ -174,6 +174,9 @@ public class SurProject extends BaseEntity @Excel(name = "进度显示") private String progressVisible; + @Excel(name = "项目区域名称") + private String projectRegionalName; + public void setId(Long id) { this.id = id; @@ -531,6 +534,14 @@ public class SurProject extends BaseEntity this.progressVisible = progressVisible; } + public String getProjectRegionalName() { + return projectRegionalName; + } + + public void setProjectRegionalName(String projectRegionalName) { + this.projectRegionalName = projectRegionalName; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectWorkAttendance.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectWorkAttendance.java index d1dcb4a5..9485667f 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectWorkAttendance.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/SurProjectWorkAttendance.java @@ -22,7 +22,7 @@ public class SurProjectWorkAttendance extends BaseEntity /** 项目主键 */ @Excel(name = "项目主键") - private Long prijectId; + private Long projectId; /** 部门主键 */ @Excel(name = "部门主键") @@ -58,14 +58,14 @@ public class SurProjectWorkAttendance extends BaseEntity { return id; } - public void setPrijectId(Long prijectId) + public void setProjectId(Long projectId) { - this.prijectId = prijectId; + this.projectId = projectId; } - public Long getPrijectId() + public Long getProjectId() { - return prijectId; + return projectId; } public void setDeptId(Long deptId) { @@ -126,7 +126,7 @@ public class SurProjectWorkAttendance extends BaseEntity public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) - .append("prijectId", getPrijectId()) + .append("projectId", getProjectId()) .append("deptId", getDeptId()) .append("servicePersonnel", getServicePersonnel()) .append("supervisorPersonnel", getSupervisorPersonnel()) diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectDeptWroksServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectDeptWroksServiceImpl.java index ac9de371..5160a10c 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectDeptWroksServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectDeptWroksServiceImpl.java @@ -8,6 +8,8 @@ import com.yanzhu.jh.project.mapper.SurProjectDeptWroksMapper; import com.yanzhu.jh.project.domain.SurProjectDeptWroks; import com.yanzhu.jh.project.service.ISurProjectDeptWroksService; import com.ruoyi.common.utils.SecurityUtils; +import org.springframework.transaction.annotation.Transactional; + /** * 项目部门在册人员Service业务层处理 * @@ -77,6 +79,7 @@ public class SurProjectDeptWroksServiceImpl implements ISurProjectDeptWroksServi * @return 结果 */ @Override + @Transactional public int updateSurProjectDeptWroks(SurProjectDeptWroks surProjectDeptWroks) { if(surProjectDeptWroks.getId()!=null){ diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectWorkAttendanceServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectWorkAttendanceServiceImpl.java index 2d1b5932..5b836e66 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectWorkAttendanceServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectWorkAttendanceServiceImpl.java @@ -1,13 +1,21 @@ package com.yanzhu.jh.project.service.impl; +import java.util.Date; import java.util.List; + +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.enums.PublicStateEnum; import com.ruoyi.common.utils.DateUtils; +import com.yanzhu.jh.project.domain.SurProjectDeptWroks; +import com.yanzhu.jh.project.mapper.SurProjectDeptWroksMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.jh.project.mapper.SurProjectWorkAttendanceMapper; import com.yanzhu.jh.project.domain.SurProjectWorkAttendance; import com.yanzhu.jh.project.service.ISurProjectWorkAttendanceService; import com.ruoyi.common.utils.SecurityUtils; +import org.springframework.transaction.annotation.Transactional; + /** * 项目出勤Service业务层处理 * @@ -20,6 +28,9 @@ public class SurProjectWorkAttendanceServiceImpl implements ISurProjectWorkAtten @Autowired private SurProjectWorkAttendanceMapper surProjectWorkAttendanceMapper; + @Autowired + private SurProjectDeptWroksMapper surProjectDeptWroksMapper; + /** * 查询项目出勤 * @@ -65,11 +76,37 @@ public class SurProjectWorkAttendanceServiceImpl implements ISurProjectWorkAtten * @return 结果 */ @Override + @Transactional public int updateSurProjectWorkAttendance(SurProjectWorkAttendance surProjectWorkAttendance) { - surProjectWorkAttendance.setUpdateBy(SecurityUtils.getUsername()); - surProjectWorkAttendance.setUpdateTime(DateUtils.getNowDate()); - return surProjectWorkAttendanceMapper.updateSurProjectWorkAttendance(surProjectWorkAttendance); + int res = -1; + surProjectWorkAttendance.setWorkDate(new Date()); + surProjectWorkAttendance.setIsDel(Convert.toLong(PublicStateEnum.OK.getCode())); + //数据效验 + SurProjectDeptWroks surProjectDeptWroks = new SurProjectDeptWroks(); + surProjectDeptWroks.setProjectId(surProjectWorkAttendance.getProjectId()); + surProjectDeptWroks.setNowDept(Convert.toStr(surProjectWorkAttendance.getDeptId())); + List surProjectDeptWroksList =surProjectDeptWroksMapper.selectSurProjectDeptWroksListv2(surProjectDeptWroks); + if(surProjectDeptWroksList!=null && surProjectDeptWroksList.size()>0){ + if(surProjectWorkAttendance.getServicePersonnel()>surProjectDeptWroksList.get(0).getServicePersonnel()){ + return res; + } + if(surProjectWorkAttendance.getSupervisorPersonnel()>surProjectDeptWroksList.get(0).getSupervisorPersonnel()){ + return res; + } + if(surProjectWorkAttendance.getContractorPersonnel()>surProjectDeptWroksList.get(0).getContractorPersonnel()){ + return res; + } + } + if(surProjectWorkAttendance.getId()!=null){ + surProjectWorkAttendance.setUpdateBy(SecurityUtils.getUsername()); + surProjectWorkAttendance.setUpdateTime(DateUtils.getNowDate()); + return surProjectWorkAttendanceMapper.updateSurProjectWorkAttendance(surProjectWorkAttendance); + }else{ + surProjectWorkAttendance.setCreateBy(SecurityUtils.getUsername()); + surProjectWorkAttendance.setCreateTime(DateUtils.getNowDate()); + return surProjectWorkAttendanceMapper.insertSurProjectWorkAttendance(surProjectWorkAttendance); + } } /** diff --git a/yanzhu-jh/src/main/resources/mapper/project/SurProjectDeptWroksMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/SurProjectDeptWroksMapper.xml index 98864012..b7ad7182 100644 --- a/yanzhu-jh/src/main/resources/mapper/project/SurProjectDeptWroksMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/project/SurProjectDeptWroksMapper.xml @@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND spdw.project_id = sp.id and sp.id = #{projectId} - and spui.unitId = #{nowDept} + and spui.unitId = #{nowDept} diff --git a/yanzhu-jh/src/main/resources/mapper/project/SurProjectMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/SurProjectMapper.xml index cf7c28c6..c541aa47 100644 --- a/yanzhu-jh/src/main/resources/mapper/project/SurProjectMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/project/SurProjectMapper.xml @@ -50,6 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -58,8 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - and priject_id = #{prijectId} - and dept_id = #{deptId} - and work_date between #{params.beginWorkDate} and #{params.endWorkDate} - and is_del = #{isDel} + SELECT + spwa.id, + spwa.project_id, + spwa.dept_id, + IFNULL(spwa.service_personnel, 0) AS service_personnel, + IFNULL(spwa.supervisor_personnel, 0) AS supervisor_personnel, + IFNULL(spwa.contractor_personnel, 0) AS contractor_personnel, + spwa.work_date, + spwa.is_del, + spwa.create_by, + spwa.create_time, + spwa.update_by, + spwa.update_time, + spwa.remark + FROM + sur_project_work_attendance spwa + + and spwa.project_id = #{projectId} + and spwa.dept_id = #{deptId} + and spwa.work_date between #{params.beginWorkDate} and #{params.endWorkDate} + and DATE_FORMAT(spwa.work_date,'%Y-%m-%d')=DATE_FORMAT(#{workDate},'%Y-%m-%d') + and spwa.is_del = #{isDel} @@ -42,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into sur_project_work_attendance - priject_id, + project_id, dept_id, service_personnel, supervisor_personnel, @@ -56,7 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" remark, - #{prijectId}, + #{projectId}, #{deptId}, #{servicePersonnel}, #{supervisorPersonnel}, @@ -74,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sur_project_work_attendance - priject_id = #{prijectId}, + project_id = #{projectId}, dept_id = #{deptId}, service_personnel = #{servicePersonnel}, supervisor_personnel = #{supervisorPersonnel}, @@ -103,7 +119,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"