Merge branch 'dev_xd' of http://62.234.3.186:3000/jiangyq/YZProjectCloud into dev_xd
commit
c3dffa32c8
7
pom.xml
7
pom.xml
|
@ -288,6 +288,13 @@
|
|||
<version>13.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- MySQL 驱动 -->
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>8.0.31</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<link rel="stylesheet" href="/cdn/Cesium/Widgets/widgets.css" />
|
||||
<!-- <script src="/cesium/jquery-3.0.0.min.js"></script> -->
|
||||
<script src="/cdn/Cesium/Cesium.js?v=20250729"></script>
|
||||
<script src="/cdn/Cesium/BIMGISEngine.js?v=20250729"></script>
|
||||
<script src="/cdn/Cesium/BIMGISEngine.js?v=20250820"></script>
|
||||
<script src="/cdn/Cesium/initApi.js?v=20230920"></script>
|
||||
|
||||
<!--<script src="/cdn/map/initApi.js"></script> -->
|
||||
|
|
|
@ -46,9 +46,37 @@ function dataFiltering(that, id) {
|
|||
});
|
||||
}
|
||||
/**
|
||||
* 获取构件属性信息
|
||||
* 获取构件属性信息-客户端渲染
|
||||
*/
|
||||
function getClientProperty(that) {
|
||||
let api = bimBriefingApi;
|
||||
api.Public.event("LEFT_CLICK", e => {
|
||||
api.Feature.getByEvent(e.position, n => {
|
||||
if (n && n["id"]) {
|
||||
let featureId = n.id;
|
||||
if (featureId.split("^")[1]) {
|
||||
clearSelectFeature(that);
|
||||
api.Feature.setColor(featureId, 255, 0, 255, 1);
|
||||
that.selFeatureId = featureId;
|
||||
dataFiltering(that, featureId);
|
||||
that.propertyLoad = "start";
|
||||
that.attributeInformation = "查询中,请稍候~";
|
||||
}
|
||||
} else {
|
||||
that.attributeInformation = "未选中构件";
|
||||
}
|
||||
}, false, false)
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 获取构件属性信息-服务端渲染
|
||||
*/
|
||||
function getProperty(that) {
|
||||
that.$message.info("请在模型中点击选中构件");
|
||||
if (that.isClient) {
|
||||
getClientProperty(that);
|
||||
return;
|
||||
}
|
||||
let api = bimBriefingApi;
|
||||
api.Feature.getByEvent(true, (n) => {
|
||||
if (n && n["id"]) {
|
||||
|
@ -74,18 +102,67 @@ function getModelUnit(that, modelId) {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获取构件尺寸信息
|
||||
* 获取构件尺寸信息-客户端渲染
|
||||
*/
|
||||
function subFeatureSize(that) {
|
||||
function subFeatureSizeClient(that) {
|
||||
let api = bimBriefingApi;
|
||||
let result = [
|
||||
{ name: "构建尺寸", data: [] },
|
||||
{ name: "构建表面积", data: [] },
|
||||
{ name: "构建体积", data: [] },
|
||||
];
|
||||
api.Public.event("LEFT_CLICK", e => {
|
||||
api.Feature.getByEvent(e.position, n => {
|
||||
if (n && n["id"]) {
|
||||
let featureId = n.id;
|
||||
if (featureId.split("^")[1]) {
|
||||
let modelId = featureId.split("^")[0];
|
||||
|
||||
clearSelectFeature(that);
|
||||
api.Feature.setColor(featureId, 255, 0, 255, 1);
|
||||
that.selFeatureId = featureId;
|
||||
api.Feature.getGeometrySizeById(featureId, modelId, res => {
|
||||
if (res) {
|
||||
let unit = getModelUnit(that, modelId);
|
||||
let size = res || {};
|
||||
let x = (size.x || 0) * unit * 1.0;
|
||||
let y = (size.y || 0) * unit * 1.0;
|
||||
let z = (size.z || 0) * unit * 1.0;
|
||||
result[0].data = [
|
||||
{ name: "长", value: x.toFixed(2) + "" },
|
||||
{ name: "宽", value: y.toFixed(2) + "" },
|
||||
{ name: "高", value: z.toFixed(2) + "" },
|
||||
];
|
||||
result[1].data = [{ name: "面积", value: (x * y).toFixed(4) + "" }];
|
||||
result[2].data = [{ name: "体积", value: (x * y * z).toFixed(6) }];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
that.info = result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取构件尺寸信息-服务端渲染
|
||||
*/
|
||||
function subFeatureSize(that) {
|
||||
let api = bimBriefingApi;
|
||||
that.info = [];
|
||||
api.Public.clearHandler();
|
||||
api.Measurement.clearAllTrace();
|
||||
if (that.isClient) {
|
||||
subFeatureSizeClient(that);
|
||||
return;
|
||||
}
|
||||
|
||||
let result = [
|
||||
{ name: "构建尺寸", data: [] },
|
||||
{ name: "构建表面积", data: [] },
|
||||
{ name: "构建体积", data: [] },
|
||||
];
|
||||
|
||||
api.Feature.getByEvent(true, (n) => {
|
||||
if (n && n["id"]) {
|
||||
let featureId = n.id;
|
||||
|
@ -115,7 +192,8 @@ function subFeatureSize(that) {
|
|||
function measurementArea(that) {
|
||||
let api = bimBriefingApi;
|
||||
that.info = [];
|
||||
api.Public.clearHandler(), api.Measurement.clearAllTrace();
|
||||
api.Public.clearHandler();
|
||||
api.Measurement.clearAllTrace();
|
||||
api.Feature.getByEvent(true, (n) => {
|
||||
console.log(n);
|
||||
if (n && n["id"]) {
|
||||
|
@ -133,13 +211,55 @@ function measurementArea(that) {
|
|||
|
||||
//构件体积
|
||||
function measuringVolume(that) { }
|
||||
//构件距离
|
||||
//构件距离--客户端渲染
|
||||
function distanceClient(that) {
|
||||
let api = bimBriefingApi;
|
||||
let result = [{ name: "测量结果", data: [] }];
|
||||
let unit = 1;
|
||||
api.Public.event("LEFT_CLICK", e => {
|
||||
api.Feature.getByEvent(e.position, n => {
|
||||
if (n && n["id"]) {
|
||||
let featureId = n.id;
|
||||
if (featureId.split("^")[1]) {
|
||||
let modelId = featureId.split("^")[0];
|
||||
unit = getModelUnit(that, modelId);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
api.Measurement.distance(data => {
|
||||
if (data) {
|
||||
result[0].data = [
|
||||
{
|
||||
name: "距离",
|
||||
value: (data.dis * unit).toFixed(2),
|
||||
},
|
||||
{ name: "X", value: (data.X * unit).toFixed(2) },
|
||||
{ name: "Y", value: (data.Y * unit).toFixed(2) },
|
||||
{ name: "Z", value: (data.Z * unit).toFixed(2) },
|
||||
];
|
||||
that.info = result;
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
//构件距离--服务端渲染
|
||||
function distance(that) {
|
||||
let api = bimBriefingApi;
|
||||
let result = [{ name: "测量结果", data: [] }];
|
||||
that.$message.info("请在模型中点击两点,右键结束测量");
|
||||
api.Public.clearHandler();
|
||||
api.Measurement.clearAllTrace();
|
||||
api.Public.event("LEFT_CLICK", (res) => {
|
||||
api.Measurement.clearAllTrace();
|
||||
});
|
||||
//右键结束测量
|
||||
api.Public.event("RIGHT_CLICK", (res) => {
|
||||
api.Measurement.distance(false);
|
||||
});
|
||||
if (that.isClient) {
|
||||
distanceClient(that);
|
||||
return;
|
||||
}
|
||||
let unit = 1;
|
||||
api.Feature.getByEvent(true, (n) => {
|
||||
if (n && n["id"]) {
|
||||
|
@ -162,19 +282,23 @@ function distance(that) {
|
|||
that.info = result;
|
||||
});
|
||||
|
||||
api.Public.event("LEFT_CLICK", (res) => {
|
||||
api.Measurement.clearAllTrace();
|
||||
});
|
||||
//右键结束测量
|
||||
api.Public.event("RIGHT_CLICK", (res) => {
|
||||
api.Measurement.distance(false);
|
||||
});
|
||||
|
||||
}
|
||||
function getModels(that) {
|
||||
return that.models.map((d) => d.modelId);
|
||||
}
|
||||
//剖切
|
||||
//剖切 -- 客户端渲染
|
||||
function initClientClipping(that) {
|
||||
let api = bimBriefingApi;
|
||||
}
|
||||
//剖切 -- 服务端渲染
|
||||
function initClipping(that) {
|
||||
api.Public.clearHandler();
|
||||
api.Measurement.clearAllTrace();
|
||||
if(that.isClient){
|
||||
initClientClipping(that);
|
||||
return;
|
||||
}
|
||||
let api = bimBriefingApi;
|
||||
api.Model.clipByBox(getModels(that));
|
||||
}
|
||||
|
|
|
@ -50,8 +50,8 @@
|
|||
</div>
|
||||
<table class="model-property-table my-table">
|
||||
<tr v-for="(item2, index) in item.data" :key="index">
|
||||
<th width="50%">{{ item2.propertyName }}</th>
|
||||
<td width="50%">{{ item2.value }}</td>
|
||||
<th width="50%" >{{ item2.propertyName }}</th>
|
||||
<td width="50%" >{{ item2.value }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -66,8 +66,8 @@
|
|||
</div>
|
||||
<table class="model-property-table my-table">
|
||||
<tr v-for="(item2, index2) in item.data" :key="index2 + '-' + index">
|
||||
<th width="50%">{{ item2.name }}</th>
|
||||
<td width="50%">
|
||||
<th width="50%" :class="'txt'+selectMenu+item2.name">{{ item2.name }}</th>
|
||||
<td width="50%" :class="'txt'+selectMenu+item2.name">
|
||||
{{ item2.value }}
|
||||
<span v-if="index == 0">米</span>
|
||||
<span v-if="index == 1">米<sup>2</sup></span>
|
||||
|
@ -216,7 +216,6 @@
|
|||
|
||||
<script>
|
||||
import debounce from "lodash.debounce";
|
||||
import { MergeArray, DelArray } from "@/utils/tools";
|
||||
import briefingTools from "./bim/briefingTools";
|
||||
import SvgIcon from "@/components/SvgIcon.vue";
|
||||
import apiTools from './bim/apiTools.js'
|
||||
|
@ -248,6 +247,7 @@ export default {
|
|||
info: [],
|
||||
title: "属性",
|
||||
showClipping: false,
|
||||
isClient: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
@ -266,6 +266,7 @@ export default {
|
|||
this.initEngine();
|
||||
})
|
||||
);
|
||||
window.bbApp=this
|
||||
this.selProject = this.$store.getters.selProject;
|
||||
this.initEngine();
|
||||
},
|
||||
|
@ -374,6 +375,7 @@ export default {
|
|||
this.showClipping = false;
|
||||
briefingTools.clearSelectFeature(this);
|
||||
}
|
||||
briefingTools.clearSelectFeature(this);
|
||||
switch (index) {
|
||||
case 0:
|
||||
this.resetScene();
|
||||
|
@ -423,6 +425,7 @@ export default {
|
|||
it.visible = true;
|
||||
api.Model.setVisible(it.modelId, true);
|
||||
api.Model.original(it.modelId);
|
||||
bimTools.hideParts(window.bimBriefingApi, this.hideParts);
|
||||
});
|
||||
} else {
|
||||
that.models.forEach((it) => {
|
||||
|
@ -434,6 +437,7 @@ export default {
|
|||
if (checked) {
|
||||
api.Model.setVisible(node.modelId, true);
|
||||
api.Model.original(node.modelId);
|
||||
bimTools.hideParts(window.bimBriefingApi, this.hideParts);
|
||||
this.models.find((mm) => mm.modelId == node.modelId).visible = true;
|
||||
} else {
|
||||
api.Model.setVisible(node.modelId, false);
|
||||
|
@ -462,6 +466,7 @@ export default {
|
|||
api.Model.setVisible(node.modelId, true);
|
||||
this.models.find((mm) => mm.modelId == node.modelId).visible = true;
|
||||
api.Model.original(node.modelId);
|
||||
bimTools.hideParts(window.bimBriefingApi, this.hideParts);
|
||||
if (tmps.length > 0) {
|
||||
let tmpsIds2 = tmps.splice(0, 1000);
|
||||
api.Feature.showFeatures(tmpsIds2.join("#"));
|
||||
|
@ -516,11 +521,7 @@ export default {
|
|||
this.attributeInformation = "";
|
||||
bimTools.initBimCfg(this);
|
||||
setTimeout(() => {
|
||||
if (this.clientShow()) {
|
||||
apiTools.loadEngine(this, "bimBriefingContainer", 'bimBriefingApi', this.initLoadModel)
|
||||
} else {
|
||||
sapiTools.loadEngine(this, "bimBriefingContainer", 'bimBriefingApi', this.initLoadModel)
|
||||
}
|
||||
bimTools.initEngine("bimBriefingApi", "bimBriefingContainer", this.bimCfg, this.initLoadModel);
|
||||
}, 10);
|
||||
},
|
||||
initLoadModel() {
|
||||
|
@ -553,17 +554,29 @@ export default {
|
|||
if (this.models.length == 0) {
|
||||
this.$message.error("暂无模型,请先关联模型");
|
||||
} else {
|
||||
bimTools.addModelList(window.bimBriefingApi, this.bimCfg, this.models, (hideParts) => {
|
||||
setTimeout(() => {
|
||||
bimTools.setDefaultViewPoint(window.bimBriefingApi, this.bimCfg, this.viewPoint)
|
||||
this.hideParts = hideParts;
|
||||
bimTools.hideParts(window.bimBriefingApi, hideParts);
|
||||
this.modelLoaded = true;
|
||||
bimTools.initLoadModel(this, bimBriefingApi)
|
||||
this.resetScene();
|
||||
setTimeout(()=>{
|
||||
this.doSelectMenu(7);
|
||||
},4000);
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
this.models.forEach((item) => {
|
||||
item.modelId = item.lightweightName;
|
||||
item.gis = JSON.parse(item.gisJson);
|
||||
this.addModel(item.lightweightName);
|
||||
this.doSelectMenu(7);
|
||||
setTimeout(() => {
|
||||
this.$refs.tree.setChecked(item.lightweightName, true, true);
|
||||
}, 3000);
|
||||
|
||||
});
|
||||
this.treeKey++;
|
||||
bimTools.initLoadModel(this, bimBriefingApi)
|
||||
this.treeKey++;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -621,52 +634,15 @@ export default {
|
|||
return tmps;
|
||||
};
|
||||
node.children = makeTree(objs.filter((item) => item.level == 0));
|
||||
node.children.forEach((item) => {
|
||||
//this.treeExpendedKeys.push(item.key)
|
||||
});
|
||||
|
||||
this.treeKey++;
|
||||
});
|
||||
},
|
||||
addModel(modelId, cb) {
|
||||
let url = `${window.config.modelUrl}/Tools/output/model/${modelId}/root.glt`;
|
||||
let direction = null;
|
||||
let modelInfo = this.models.find(m => m.modelId == modelId);
|
||||
if (this.clientShow()) {
|
||||
url = `/bimdata/Tools/output/model/${modelId}/root.glt`;
|
||||
if (modelInfo) {
|
||||
direction = modelInfo.bimCfg.direction;
|
||||
}
|
||||
}
|
||||
let api = bimBriefingApi
|
||||
console.log(modelId, url);
|
||||
api.Model.add(
|
||||
url,
|
||||
modelId,
|
||||
() => { },
|
||||
() => {
|
||||
cb && cb();
|
||||
console.log("加载模型成功");
|
||||
setTimeout(() => {
|
||||
if (this.viewPoint) {
|
||||
if (!this.clientShow()) {
|
||||
api.Camera.setViewPort(this.viewPoint);
|
||||
}
|
||||
} else {
|
||||
api.Camera.getViewPort((p) => {
|
||||
this.viewPoint = p;
|
||||
});
|
||||
}
|
||||
this.modelLoaded = true;
|
||||
}, 1000);
|
||||
},
|
||||
direction
|
||||
);
|
||||
},
|
||||
resetScene() {
|
||||
this.selectedViewpoint = null;
|
||||
this.selectedRoam = null;
|
||||
bimBriefingApi.Measurement.clearAllTrace()
|
||||
bimBriefingApi.Public.clearHandler()
|
||||
bimTools.resetScene(this, bimBriefingApi)
|
||||
|
||||
bimTools.hideParts(window.bimBriefingApi, this.hideParts);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -747,6 +723,17 @@ export default {
|
|||
margin: 10px;
|
||||
}
|
||||
|
||||
.model-property-table{
|
||||
.txt4X{
|
||||
color:#f92e2e;
|
||||
}
|
||||
.txt4Y{
|
||||
color:#8fed12;
|
||||
}
|
||||
.txt4Z{
|
||||
color:orange;
|
||||
}
|
||||
}
|
||||
.hide-list {
|
||||
height: calc(100% - 60px);
|
||||
overflow-y: auto;
|
||||
|
|
|
@ -459,15 +459,11 @@ export default {
|
|||
bimTools.initBimCfg(this);
|
||||
this.elId++;
|
||||
this.activeMenu = 0;
|
||||
bimTools.initBimCfg(this);
|
||||
setTimeout(() => {
|
||||
bimTools.initEngine("bimRoadmApi", "bimRoamingContainer", this.bimCfg, this.initLoadModel);
|
||||
}, 10);
|
||||
},
|
||||
initLoadModel() {
|
||||
if (this.selProject == null) {
|
||||
return;
|
||||
}
|
||||
this.$api.bim.getDefaultViewPoint(this.selProject.id, 1).then((d) => {
|
||||
let pt = "";
|
||||
if (d.data && d.data.length > 0) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.yanzhu.flowable.domain.my;
|
|||
import com.yanzhu.common.core.web.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
|
@ -14,6 +15,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
|||
* @date 2024-02-23
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel("工作流项目单位关系")
|
||||
public class FlowDeptVo extends BaseEntity {
|
||||
|
||||
|
|
|
@ -0,0 +1,213 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.yanzhu.common.core.annotation.Excel;
|
||||
import com.yanzhu.common.core.web.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置对象 pro_mobile_attendance_config
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
public class ProMobileAttendanceConfig extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** $column.columnComment */
|
||||
private Long id;
|
||||
|
||||
/** $column.columnComment */
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private Long comId;
|
||||
|
||||
/** $column.columnComment */
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private Long projectId;
|
||||
|
||||
/** 标题 */
|
||||
@Excel(name = "标题")
|
||||
private String title;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date starteDate;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endDate;
|
||||
|
||||
private List<ProMobileAttendanceConfigGroup> groupList;
|
||||
|
||||
public List<ProMobileAttendanceConfigGroup> getGroupList() {
|
||||
return groupList;
|
||||
}
|
||||
|
||||
public void setGroupList(List<ProMobileAttendanceConfigGroup> groupList) {
|
||||
this.groupList = groupList;
|
||||
}
|
||||
|
||||
/** 地址 */
|
||||
@Excel(name = "地址")
|
||||
private String address;
|
||||
|
||||
/** 经度 */
|
||||
@Excel(name = "经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
/** 纬度 */
|
||||
@Excel(name = "纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** 有效 */
|
||||
@Excel(name = "有效")
|
||||
private Long valid;
|
||||
|
||||
/** 考勤范围 */
|
||||
@Excel(name = "考勤范围")
|
||||
private BigDecimal rang;
|
||||
|
||||
/** $column.columnComment */
|
||||
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
|
||||
private Long state;
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
public void setComId(Long comId)
|
||||
{
|
||||
this.comId = comId;
|
||||
}
|
||||
|
||||
public Long getComId()
|
||||
{
|
||||
return comId;
|
||||
}
|
||||
public void setProjectId(Long projectId)
|
||||
{
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
public Long getProjectId()
|
||||
{
|
||||
return projectId;
|
||||
}
|
||||
public void setTitle(String title)
|
||||
{
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getTitle()
|
||||
{
|
||||
return title;
|
||||
}
|
||||
public void setStarteDate(Date starteDate)
|
||||
{
|
||||
this.starteDate = starteDate;
|
||||
}
|
||||
|
||||
public Date getStarteDate()
|
||||
{
|
||||
return starteDate;
|
||||
}
|
||||
public void setEndDate(Date endDate)
|
||||
{
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public Date getEndDate()
|
||||
{
|
||||
return endDate;
|
||||
}
|
||||
public void setAddress(String address)
|
||||
{
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getAddress()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
public void setLongitude(BigDecimal longitude)
|
||||
{
|
||||
this.longitude = longitude;
|
||||
}
|
||||
|
||||
public BigDecimal getLongitude()
|
||||
{
|
||||
return longitude;
|
||||
}
|
||||
public void setLatitude(BigDecimal latitude)
|
||||
{
|
||||
this.latitude = latitude;
|
||||
}
|
||||
|
||||
public BigDecimal getLatitude()
|
||||
{
|
||||
return latitude;
|
||||
}
|
||||
public void setValid(Long valid)
|
||||
{
|
||||
this.valid = valid;
|
||||
}
|
||||
|
||||
public Long getValid()
|
||||
{
|
||||
return valid;
|
||||
}
|
||||
public void setRang(BigDecimal rang)
|
||||
{
|
||||
this.rang = rang;
|
||||
}
|
||||
|
||||
public BigDecimal getRang()
|
||||
{
|
||||
return rang;
|
||||
}
|
||||
public void setState(Long state)
|
||||
{
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public Long getState()
|
||||
{
|
||||
return state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("comId", getComId())
|
||||
.append("projectId", getProjectId())
|
||||
.append("title", getTitle())
|
||||
.append("starteDate", getStarteDate())
|
||||
.append("endDate", getEndDate())
|
||||
.append("address", getAddress())
|
||||
.append("longitude", getLongitude())
|
||||
.append("latitude", getLatitude())
|
||||
.append("valid", getValid())
|
||||
.append("rang", getRang())
|
||||
.append("state", getState())
|
||||
.append("remark", getRemark())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import com.yanzhu.common.core.annotation.Excel;
|
||||
import com.yanzhu.common.core.web.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
|
||||
/**
|
||||
* 移动端考勤配置分组信息对象 pro_mobile_attendance_config_group
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
public class ProMobileAttendanceConfigGroup extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** $column.columnComment */
|
||||
private Long id;
|
||||
|
||||
/** 配置表ID */
|
||||
@Excel(name = "配置表ID")
|
||||
private Long cfgId;
|
||||
|
||||
/** 班级ID */
|
||||
@Excel(name = "班级ID")
|
||||
private Long groupId;
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
public void setCfgId(Long cfgId)
|
||||
{
|
||||
this.cfgId = cfgId;
|
||||
}
|
||||
|
||||
public Long getCfgId()
|
||||
{
|
||||
return cfgId;
|
||||
}
|
||||
public void setGroupId(Long groupId)
|
||||
{
|
||||
this.groupId = groupId;
|
||||
}
|
||||
|
||||
public Long getGroupId()
|
||||
{
|
||||
return groupId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("cfgId", getCfgId())
|
||||
.append("groupId", getGroupId())
|
||||
.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
package com.yanzhu.manage.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfigGroup;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置分组信息Mapper接口
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
public interface ProMobileAttendanceConfigGroupMapper
|
||||
{
|
||||
/**
|
||||
* 查询移动端考勤配置分组信息
|
||||
*
|
||||
* @param id 移动端考勤配置分组信息主键
|
||||
* @return 移动端考勤配置分组信息
|
||||
*/
|
||||
public ProMobileAttendanceConfigGroup selectProMobileAttendanceConfigGroupById(Long id);
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置分组信息列表
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 移动端考勤配置分组信息集合
|
||||
*/
|
||||
public List<ProMobileAttendanceConfigGroup> selectProMobileAttendanceConfigGroupList(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup);
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置分组信息
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertProMobileAttendanceConfigGroup(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup);
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置分组信息
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateProMobileAttendanceConfigGroup(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup);
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置分组信息
|
||||
*
|
||||
* @param id 移动端考勤配置分组信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigGroupById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除移动端考勤配置分组信息
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigGroupByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 根据配置ID删除移动端考勤配置分组信息
|
||||
*
|
||||
* @param cfgId 配置ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigGroupByCfgId(Long cfgId);
|
||||
|
||||
public int insertProMobileAttendanceConfigGroupBatch(List<ProMobileAttendanceConfigGroup> groupList);
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.yanzhu.manage.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfig;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置Mapper接口
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
public interface ProMobileAttendanceConfigMapper
|
||||
{
|
||||
/**
|
||||
* 查询移动端考勤配置
|
||||
*
|
||||
* @param id 移动端考勤配置主键
|
||||
* @return 移动端考勤配置
|
||||
*/
|
||||
public ProMobileAttendanceConfig selectProMobileAttendanceConfigById(Long id);
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置列表
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 移动端考勤配置集合
|
||||
*/
|
||||
public List<ProMobileAttendanceConfig> selectProMobileAttendanceConfigList(ProMobileAttendanceConfig proMobileAttendanceConfig);
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertProMobileAttendanceConfig(ProMobileAttendanceConfig proMobileAttendanceConfig);
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateProMobileAttendanceConfig(ProMobileAttendanceConfig proMobileAttendanceConfig);
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置
|
||||
*
|
||||
* @param id 移动端考勤配置主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除移动端考勤配置
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigByIds(Long[] ids);
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
<?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.yanzhu.manage.mapper.ProMobileAttendanceConfigGroupMapper">
|
||||
|
||||
<resultMap type="ProMobileAttendanceConfigGroup" id="ProMobileAttendanceConfigGroupResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="cfgId" column="cfg_id" />
|
||||
<result property="groupId" column="group_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProMobileAttendanceConfigGroupVo">
|
||||
select id, cfg_id, group_id from pro_mobile_attendance_config_group
|
||||
</sql>
|
||||
|
||||
<select id="selectProMobileAttendanceConfigGroupList" parameterType="ProMobileAttendanceConfigGroup" resultMap="ProMobileAttendanceConfigGroupResult">
|
||||
<include refid="selectProMobileAttendanceConfigGroupVo"/>
|
||||
<where>
|
||||
<if test="cfgId != null "> and cfg_id = #{cfgId}</if>
|
||||
<if test="groupId != null "> and group_id = #{groupId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectProMobileAttendanceConfigGroupById" parameterType="Long" resultMap="ProMobileAttendanceConfigGroupResult">
|
||||
<include refid="selectProMobileAttendanceConfigGroupVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertProMobileAttendanceConfigGroup" parameterType="ProMobileAttendanceConfigGroup" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into pro_mobile_attendance_config_group
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="cfgId != null">cfg_id,</if>
|
||||
<if test="groupId != null">group_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="cfgId != null">#{cfgId},</if>
|
||||
<if test="groupId != null">#{groupId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
<insert id="insertProMobileAttendanceConfigGroupBatch">
|
||||
insert into pro_mobile_attendance_config_group (cfg_id, group_id)
|
||||
values
|
||||
<foreach collection="groupList" item="item" index="index" separator=";">
|
||||
(#{item.cfgId}, #{item.groupId})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="updateProMobileAttendanceConfigGroup" parameterType="ProMobileAttendanceConfigGroup">
|
||||
update pro_mobile_attendance_config_group
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="cfgId != null">cfg_id = #{cfgId},</if>
|
||||
<if test="groupId != null">group_id = #{groupId},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProMobileAttendanceConfigGroupById" parameterType="Long">
|
||||
delete from pro_mobile_attendance_config_group where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProMobileAttendanceConfigGroupByIds" parameterType="String">
|
||||
delete from pro_mobile_attendance_config_group where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProMobileAttendanceConfigGroupByCfgId" parameterType="Long">
|
||||
delete from pro_mobile_attendance_config_group where cfg_id = #{cfgId}
|
||||
</delete>
|
||||
</mapper>
|
|
@ -0,0 +1,126 @@
|
|||
<?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.yanzhu.manage.mapper.ProMobileAttendanceConfigMapper">
|
||||
|
||||
<resultMap type="ProMobileAttendanceConfig" id="ProMobileAttendanceConfigResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="comId" column="com_id" />
|
||||
<result property="projectId" column="project_id" />
|
||||
<result property="title" column="title" />
|
||||
<result property="starteDate" column="starte_date" />
|
||||
<result property="endDate" column="end_date" />
|
||||
<result property="address" column="address" />
|
||||
<result property="longitude" column="longitude" />
|
||||
<result property="latitude" column="latitude" />
|
||||
<result property="valid" column="valid" />
|
||||
<result property="rang" column="rang" />
|
||||
<result property="state" column="state" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProMobileAttendanceConfigVo">
|
||||
select id, com_id, project_id, title, starte_date, end_date, address, longitude, latitude, valid, rang, state, remark, create_by, create_time, update_by, update_time from pro_mobile_attendance_config
|
||||
</sql>
|
||||
|
||||
<select id="selectProMobileAttendanceConfigList" parameterType="ProMobileAttendanceConfig" resultMap="ProMobileAttendanceConfigResult">
|
||||
<include refid="selectProMobileAttendanceConfigVo"/>
|
||||
<where>
|
||||
<if test="comId != null "> and com_id = #{comId}</if>
|
||||
<if test="projectId != null "> and project_id = #{projectId}</if>
|
||||
<if test="title != null and title != ''"> and title = #{title}</if>
|
||||
<if test="starteDate != null "> and starte_date = #{starteDate}</if>
|
||||
<if test="endDate != null "> and end_date = #{endDate}</if>
|
||||
<if test="address != null and address != ''"> and address = #{address}</if>
|
||||
<if test="longitude != null "> and longitude = #{longitude}</if>
|
||||
<if test="latitude != null "> and latitude = #{latitude}</if>
|
||||
<if test="valid != null "> and valid = #{valid}</if>
|
||||
<if test="rang != null "> and rang = #{rang}</if>
|
||||
<if test="state != null "> and state = #{state}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectProMobileAttendanceConfigById" parameterType="Long" resultMap="ProMobileAttendanceConfigResult">
|
||||
<include refid="selectProMobileAttendanceConfigVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertProMobileAttendanceConfig" parameterType="ProMobileAttendanceConfig" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into pro_mobile_attendance_config
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="comId != null">com_id,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
<if test="title != null and title != ''">title,</if>
|
||||
<if test="starteDate != null">starte_date,</if>
|
||||
<if test="endDate != null">end_date,</if>
|
||||
<if test="address != null">address,</if>
|
||||
<if test="longitude != null">longitude,</if>
|
||||
<if test="latitude != null">latitude,</if>
|
||||
<if test="valid != null">valid,</if>
|
||||
<if test="rang != null">rang,</if>
|
||||
<if test="state != null">state,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="comId != null">#{comId},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
<if test="title != null and title != ''">#{title},</if>
|
||||
<if test="starteDate != null">#{starteDate},</if>
|
||||
<if test="endDate != null">#{endDate},</if>
|
||||
<if test="address != null">#{address},</if>
|
||||
<if test="longitude != null">#{longitude},</if>
|
||||
<if test="latitude != null">#{latitude},</if>
|
||||
<if test="valid != null">#{valid},</if>
|
||||
<if test="rang != null">#{rang},</if>
|
||||
<if test="state != null">#{state},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateProMobileAttendanceConfig" parameterType="ProMobileAttendanceConfig">
|
||||
update pro_mobile_attendance_config
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="comId != null">com_id = #{comId},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
<if test="title != null and title != ''">title = #{title},</if>
|
||||
<if test="starteDate != null">starte_date = #{starteDate},</if>
|
||||
<if test="endDate != null">end_date = #{endDate},</if>
|
||||
<if test="address != null">address = #{address},</if>
|
||||
<if test="longitude != null">longitude = #{longitude},</if>
|
||||
<if test="latitude != null">latitude = #{latitude},</if>
|
||||
<if test="valid != null">valid = #{valid},</if>
|
||||
<if test="rang != null">rang = #{rang},</if>
|
||||
<if test="state != null">state = #{state},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProMobileAttendanceConfigById" parameterType="Long">
|
||||
delete from pro_mobile_attendance_config where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProMobileAttendanceConfigByIds" parameterType="String">
|
||||
delete from pro_mobile_attendance_config where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
|
@ -81,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_ext ex on u.user_id = ex.user_id and u.dept_id = ex.project_id
|
||||
where u.del_flag = '0' and ex.user_type != '99'
|
||||
where u.del_flag = '0' and ex.user_type in ( '00','08')
|
||||
<if test="userId != null and userId != 0">
|
||||
AND u.user_id = #{userId}
|
||||
</if>
|
||||
|
@ -95,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
AND u.nick_name = #{nickName}
|
||||
</if>
|
||||
<if test="status != null and status != ''">
|
||||
AND uc.status = #{status}
|
||||
AND u.status = #{status}
|
||||
</if>
|
||||
<if test="phonenumber != null and phonenumber != ''">
|
||||
AND u.phonenumber like concat('%', #{phonenumber}, '%')
|
||||
|
|
|
@ -62,8 +62,8 @@
|
|||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- YanZhu Common Log -->
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- YanZhu Common Log -->
|
||||
|
|
|
@ -62,8 +62,8 @@
|
|||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- YanZhu Common Log -->
|
||||
|
|
|
@ -61,8 +61,8 @@
|
|||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- YanZhu Common Log -->
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
package com.yanzhu.manage.controller.remoteAttendance;
|
||||
|
||||
import java.util.List;
|
||||
import java.io.IOException;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.yanzhu.common.core.utils.poi.ExcelUtil;
|
||||
import com.yanzhu.common.core.web.controller.BaseController;
|
||||
import com.yanzhu.common.core.web.domain.AjaxResult;
|
||||
import com.yanzhu.common.core.web.page.TableDataInfo;
|
||||
import com.yanzhu.common.log.annotation.Log;
|
||||
import com.yanzhu.common.log.enums.BusinessType;
|
||||
import com.yanzhu.common.security.annotation.RequiresPermissions;
|
||||
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.yanzhu.manage.domain.ProMobileAttendanceConfig;
|
||||
import com.yanzhu.manage.service.IProMobileAttendanceConfigService;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置Controller
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/mobileAttendConfig")
|
||||
public class ProMobileAttendanceConfigController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IProMobileAttendanceConfigService proMobileAttendanceConfigService;
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置列表
|
||||
*/
|
||||
@RequiresPermissions("manage:mobileAttendConfig:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
startPage();
|
||||
List<ProMobileAttendanceConfig> list = proMobileAttendanceConfigService.selectProMobileAttendanceConfigList(proMobileAttendanceConfig);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出移动端考勤配置列表
|
||||
*/
|
||||
@RequiresPermissions("manage:mobileAttendConfig:export")
|
||||
@Log(title = "移动端考勤配置", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
List<ProMobileAttendanceConfig> list = proMobileAttendanceConfigService.selectProMobileAttendanceConfigList(proMobileAttendanceConfig);
|
||||
ExcelUtil<ProMobileAttendanceConfig> util = new ExcelUtil<ProMobileAttendanceConfig>(ProMobileAttendanceConfig.class);
|
||||
util.exportExcel(response, list, "移动端考勤配置数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取移动端考勤配置详细信息
|
||||
*/
|
||||
@RequiresPermissions("manage:mobileAttendConfig:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(proMobileAttendanceConfigService.selectProMobileAttendanceConfigById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置
|
||||
*/
|
||||
@RequiresPermissions("manage:mobileAttendConfig:add")
|
||||
@Log(title = "移动端考勤配置", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
return toAjax(proMobileAttendanceConfigService.insertProMobileAttendanceConfig(proMobileAttendanceConfig));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置
|
||||
*/
|
||||
@RequiresPermissions("manage:mobileAttendConfig:edit")
|
||||
@Log(title = "移动端考勤配置", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
return toAjax(proMobileAttendanceConfigService.updateProMobileAttendanceConfig(proMobileAttendanceConfig));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置
|
||||
*/
|
||||
@RequiresPermissions("manage:mobileAttendConfig:remove")
|
||||
@Log(title = "移动端考勤配置", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(proMobileAttendanceConfigService.deleteProMobileAttendanceConfigByIds(ids));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.yanzhu.manage.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfigGroup;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置分组信息Service接口
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
public interface IProMobileAttendanceConfigGroupService
|
||||
{
|
||||
/**
|
||||
* 查询移动端考勤配置分组信息
|
||||
*
|
||||
* @param id 移动端考勤配置分组信息主键
|
||||
* @return 移动端考勤配置分组信息
|
||||
*/
|
||||
public ProMobileAttendanceConfigGroup selectProMobileAttendanceConfigGroupById(Long id);
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置分组信息列表
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 移动端考勤配置分组信息集合
|
||||
*/
|
||||
public List<ProMobileAttendanceConfigGroup> selectProMobileAttendanceConfigGroupList(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup);
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置分组信息
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertProMobileAttendanceConfigGroup(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup);
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置分组信息
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateProMobileAttendanceConfigGroup(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup);
|
||||
|
||||
/**
|
||||
* 批量删除移动端考勤配置分组信息
|
||||
*
|
||||
* @param ids 需要删除的移动端考勤配置分组信息主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigGroupByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置分组信息信息
|
||||
*
|
||||
* @param id 移动端考勤配置分组信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigGroupById(Long id);
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.yanzhu.manage.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfig;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置Service接口
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
public interface IProMobileAttendanceConfigService
|
||||
{
|
||||
/**
|
||||
* 查询移动端考勤配置
|
||||
*
|
||||
* @param id 移动端考勤配置主键
|
||||
* @return 移动端考勤配置
|
||||
*/
|
||||
public ProMobileAttendanceConfig selectProMobileAttendanceConfigById(Long id);
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置列表
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 移动端考勤配置集合
|
||||
*/
|
||||
public List<ProMobileAttendanceConfig> selectProMobileAttendanceConfigList(ProMobileAttendanceConfig proMobileAttendanceConfig);
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertProMobileAttendanceConfig(ProMobileAttendanceConfig proMobileAttendanceConfig);
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateProMobileAttendanceConfig(ProMobileAttendanceConfig proMobileAttendanceConfig);
|
||||
|
||||
/**
|
||||
* 批量删除移动端考勤配置
|
||||
*
|
||||
* @param ids 需要删除的移动端考勤配置主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置信息
|
||||
*
|
||||
* @param id 移动端考勤配置主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProMobileAttendanceConfigById(Long id);
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.yanzhu.manage.mapper.ProMobileAttendanceConfigGroupMapper;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfigGroup;
|
||||
import com.yanzhu.manage.service.IProMobileAttendanceConfigGroupService;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置分组信息Service业务层处理
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
@Service
|
||||
public class ProMobileAttendanceConfigGroupServiceImpl implements IProMobileAttendanceConfigGroupService
|
||||
{
|
||||
@Autowired
|
||||
private ProMobileAttendanceConfigGroupMapper proMobileAttendanceConfigGroupMapper;
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置分组信息
|
||||
*
|
||||
* @param id 移动端考勤配置分组信息主键
|
||||
* @return 移动端考勤配置分组信息
|
||||
*/
|
||||
@Override
|
||||
public ProMobileAttendanceConfigGroup selectProMobileAttendanceConfigGroupById(Long id)
|
||||
{
|
||||
return proMobileAttendanceConfigGroupMapper.selectProMobileAttendanceConfigGroupById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置分组信息列表
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 移动端考勤配置分组信息
|
||||
*/
|
||||
@Override
|
||||
public List<ProMobileAttendanceConfigGroup> selectProMobileAttendanceConfigGroupList(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup)
|
||||
{
|
||||
return proMobileAttendanceConfigGroupMapper.selectProMobileAttendanceConfigGroupList(proMobileAttendanceConfigGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置分组信息
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertProMobileAttendanceConfigGroup(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup)
|
||||
{
|
||||
return proMobileAttendanceConfigGroupMapper.insertProMobileAttendanceConfigGroup(proMobileAttendanceConfigGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置分组信息
|
||||
*
|
||||
* @param proMobileAttendanceConfigGroup 移动端考勤配置分组信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateProMobileAttendanceConfigGroup(ProMobileAttendanceConfigGroup proMobileAttendanceConfigGroup)
|
||||
{
|
||||
return proMobileAttendanceConfigGroupMapper.updateProMobileAttendanceConfigGroup(proMobileAttendanceConfigGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除移动端考勤配置分组信息
|
||||
*
|
||||
* @param ids 需要删除的移动端考勤配置分组信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteProMobileAttendanceConfigGroupByIds(Long[] ids)
|
||||
{
|
||||
return proMobileAttendanceConfigGroupMapper.deleteProMobileAttendanceConfigGroupByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置分组信息信息
|
||||
*
|
||||
* @param id 移动端考勤配置分组信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteProMobileAttendanceConfigGroupById(Long id)
|
||||
{
|
||||
return proMobileAttendanceConfigGroupMapper.deleteProMobileAttendanceConfigGroupById(id);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,127 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfigGroup;
|
||||
import com.yanzhu.manage.mapper.ProMobileAttendanceConfigGroupMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.yanzhu.manage.mapper.ProMobileAttendanceConfigMapper;
|
||||
import com.yanzhu.manage.domain.ProMobileAttendanceConfig;
|
||||
import com.yanzhu.manage.service.IProMobileAttendanceConfigService;
|
||||
|
||||
/**
|
||||
* 移动端考勤配置Service业务层处理
|
||||
*
|
||||
* @author yanzhu
|
||||
* @date 2025-08-29
|
||||
*/
|
||||
@Service
|
||||
public class ProMobileAttendanceConfigServiceImpl implements IProMobileAttendanceConfigService
|
||||
{
|
||||
@Autowired
|
||||
private ProMobileAttendanceConfigMapper proMobileAttendanceConfigMapper;
|
||||
|
||||
@Autowired
|
||||
private ProMobileAttendanceConfigGroupMapper proMobileAttendanceConfigGroupMapper;
|
||||
/**
|
||||
* 查询移动端考勤配置
|
||||
*
|
||||
* @param id 移动端考勤配置主键
|
||||
* @return 移动端考勤配置
|
||||
*/
|
||||
@Override
|
||||
public ProMobileAttendanceConfig selectProMobileAttendanceConfigById(Long id)
|
||||
{
|
||||
return proMobileAttendanceConfigMapper.selectProMobileAttendanceConfigById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询移动端考勤配置列表
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 移动端考勤配置
|
||||
*/
|
||||
@Override
|
||||
public List<ProMobileAttendanceConfig> selectProMobileAttendanceConfigList(ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
return proMobileAttendanceConfigMapper.selectProMobileAttendanceConfigList(proMobileAttendanceConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增移动端考勤配置
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertProMobileAttendanceConfig(ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
proMobileAttendanceConfig.setCreateBy(SecurityContextHolder.getUserName());
|
||||
proMobileAttendanceConfig.setCreateTime(DateUtils.getNowDate());
|
||||
int cnt= proMobileAttendanceConfigMapper.insertProMobileAttendanceConfig(proMobileAttendanceConfig);
|
||||
if(cnt>0){
|
||||
List<ProMobileAttendanceConfigGroup> groupList = proMobileAttendanceConfig.getGroupList();
|
||||
if(groupList!=null && groupList.size()>0){
|
||||
for(ProMobileAttendanceConfigGroup group:groupList){
|
||||
group.setCfgId(proMobileAttendanceConfig.getId());
|
||||
}
|
||||
proMobileAttendanceConfigGroupMapper.insertProMobileAttendanceConfigGroupBatch(groupList);
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改移动端考勤配置
|
||||
*
|
||||
* @param proMobileAttendanceConfig 移动端考勤配置
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateProMobileAttendanceConfig(ProMobileAttendanceConfig proMobileAttendanceConfig)
|
||||
{
|
||||
proMobileAttendanceConfig.setUpdateBy(SecurityContextHolder.getUserName());
|
||||
proMobileAttendanceConfig.setUpdateTime(DateUtils.getNowDate());
|
||||
int cnt= proMobileAttendanceConfigMapper.updateProMobileAttendanceConfig(proMobileAttendanceConfig);
|
||||
if(cnt>0){
|
||||
List<ProMobileAttendanceConfigGroup> groupList = proMobileAttendanceConfig.getGroupList();
|
||||
// 先根据配置ID删除原有的关联数据
|
||||
proMobileAttendanceConfigGroupMapper.deleteProMobileAttendanceConfigGroupByCfgId(proMobileAttendanceConfig.getId());
|
||||
// 再重新插入新的关联数据
|
||||
if(groupList!=null && groupList.size()>0){
|
||||
for(ProMobileAttendanceConfigGroup group:groupList){
|
||||
group.setCfgId(proMobileAttendanceConfig.getId());
|
||||
}
|
||||
proMobileAttendanceConfigGroupMapper.insertProMobileAttendanceConfigGroupBatch(groupList);
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除移动端考勤配置
|
||||
*
|
||||
* @param ids 需要删除的移动端考勤配置主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteProMobileAttendanceConfigByIds(Long[] ids)
|
||||
{
|
||||
return proMobileAttendanceConfigMapper.deleteProMobileAttendanceConfigByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除移动端考勤配置信息
|
||||
*
|
||||
* @param id 移动端考勤配置主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteProMobileAttendanceConfigById(Long id)
|
||||
{
|
||||
return proMobileAttendanceConfigMapper.deleteProMobileAttendanceConfigById(id);
|
||||
}
|
||||
}
|
|
@ -57,8 +57,8 @@
|
|||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- YanZhu Common DataSource-->
|
||||
|
|
|
@ -49,8 +49,8 @@
|
|||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- YanZhu Common Log -->
|
||||
|
|
Loading…
Reference in New Issue