签到规则修改,大数据接口

This commit is contained in:
wans 2021-07-30 10:21:22 +08:00
parent b2a4445fbd
commit 885900fc09
14 changed files with 560 additions and 160 deletions

View File

@ -10,6 +10,7 @@ import com.cm.common.exception.UpdateException;
import com.cm.common.result.ErrorResult;
import com.cm.common.result.SuccessResult;
import com.cm.systemcity.pojo.vos.config.ConfigVO;
import com.cm.systemcity.pojo.vos.config.ConfigVOV2;
import com.cm.systemcity.service.config.IConfigService;
import io.swagger.annotations.*;
import org.apache.commons.lang3.BooleanUtils;
@ -41,58 +42,59 @@ public class ConfigController extends AbstractController {
@ApiOperation(value = "保存配置", notes = "保存配置接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("saveconfig")
public SuccessResult saveConfig(@RequestBody ConfigVO configVO) throws SearchException, SaveException, UpdateException, ParamsException {
public SuccessResult saveConfig(@RequestBody ConfigVOV2 configVO) throws SearchException, SaveException, UpdateException, ParamsException {
Map<String, Object> params = getParams();
LOG.debug("网格长上午打开时间");
if (StringUtils.isBlank(configVO.getAmStartPunchTime())) {
throw new ParamsException("上午开始打卡时间不能为空");
// 网格员打卡设置
if (StringUtils.isBlank(configVO.getSignInStr())) {
throw new ParamsException("网格员签到开始时间不能为空");
}
params.put("amStartPunchTime", configVO.getAmStartPunchTime());
if (StringUtils.isBlank(configVO.getAmStartWorkTime())) {
throw new ParamsException("上午上班时间不能为空");
params.put("signInStr", configVO.getSignInStr());
if (StringUtils.isBlank(configVO.getSignInEnd())) {
throw new ParamsException("网格员签到截止时间不能为空");
}
params.put("amStartWorkTime", configVO.getAmStartWorkTime());
if (StringUtils.isBlank(configVO.getAmEndWorkTime())) {
throw new ParamsException("上午下班时间不能为空");
params.put("signInEnd", configVO.getSignInEnd());
if (StringUtils.isBlank(configVO.getSignOutStr())) {
throw new ParamsException("网格员签退开始时间不能为空");
}
params.put("amEndWorkTime", configVO.getAmEndWorkTime());
if (StringUtils.isBlank(configVO.getAmEndPunchTime())) {
throw new ParamsException("上午结束打卡时间不能为空");
params.put("signOutStr", configVO.getSignOutStr());
if (StringUtils.isBlank(configVO.getSignOutEnd())) {
throw new ParamsException("网格员签退截止时间不能为空");
}
params.put("amEndPunchTime", configVO.getAmEndPunchTime());
LOG.debug("网格长下午打开时间");
if (StringUtils.isBlank(configVO.getPmStartPunchTime())) {
throw new ParamsException("下午开始打卡时间不能为空");
params.put("signOutEnd", configVO.getSignOutEnd());
// 专管员打卡设置
if (StringUtils.isBlank(configVO.getnSignInStr())) {
throw new ParamsException("专管员签到开始时间不能为空");
}
params.put("pmStartPunchTime", configVO.getPmStartPunchTime());
if (StringUtils.isBlank(configVO.getPmStartWorkTime())) {
throw new ParamsException("下午上班时间不能为空");
params.put("nSignInStr", configVO.getnSignInStr());
if (StringUtils.isBlank(configVO.getnSignInEnd())) {
throw new ParamsException("专管员签到截止时间不能为空");
}
params.put("pmStartWorkTime", configVO.getPmStartWorkTime());
if (StringUtils.isBlank(configVO.getPmEndWorkTime())) {
throw new ParamsException("下午下班时间不能为空");
params.put("nSignInEnd", configVO.getnSignInEnd());
if (StringUtils.isBlank(configVO.getnSignOutStr())) {
throw new ParamsException("专管员签退开始时间不能为空");
}
params.put("pmEndWorkTime", configVO.getPmEndWorkTime());
if (StringUtils.isBlank(configVO.getPmEndPunchTime())) {
throw new ParamsException("下午结束打卡时间不能为空");
params.put("nSignOutStr", configVO.getnSignOutStr());
if (StringUtils.isBlank(configVO.getnSignOutEnd())) {
throw new ParamsException("专管员签退截止时间不能为空");
}
LOG.debug("N员打卡时间");
if (StringUtils.isBlank(configVO.getnStartPunchTime())) {
throw new ParamsException("n员开始打卡时间不能为空");
params.put("nSignOutEnd", configVO.getnSignOutEnd());
// 不记录轨迹时间设置
if (StringUtils.isBlank(configVO.getPositionRecordStr())) {
throw new ParamsException("网格员不记录轨迹开始时间不能为空");
}
params.put("nStartPunchTime", configVO.getnStartPunchTime());
if (StringUtils.isBlank(configVO.getnStartWorkTime())) {
throw new ParamsException("n员上班时间不能为空");
params.put("positionRecordStr", configVO.getPositionRecordStr());
if (StringUtils.isBlank(configVO.getPositionRecordEnd())) {
throw new ParamsException("网格员不记录轨迹截止时间不能为空");
}
params.put("nStartWorkTime", configVO.getnStartWorkTime());
if (StringUtils.isBlank(configVO.getnEndWorkTime())) {
throw new ParamsException("n员下班时间不能为空");
params.put("positionRecordEnd", configVO.getPositionRecordEnd());
if (StringUtils.isBlank(configVO.getnPositionRecordStr())) {
throw new ParamsException("专管员不记录轨迹开始时间不能为空");
}
params.put("nEndWorkTime", configVO.getnEndWorkTime());
if (StringUtils.isBlank(configVO.getnEndPunchTime())) {
throw new ParamsException("n员结束打卡时间不能为空");
params.put("nPositionRecordStr", configVO.getnPositionRecordStr());
if (StringUtils.isBlank(configVO.getnPositionRecordEnd())) {
throw new ParamsException("专管员不记录轨迹截止时间不能为空");
}
params.put("nEndPunchTime", configVO.getnEndPunchTime());
params.put("nPositionRecordEnd", configVO.getnPositionRecordEnd());
if (NumberUtils.isParsable(configVO.getPushSelfTime())) {
Integer pushSelfTime = Integer.parseInt(configVO.getPushSelfTime());
if (pushSelfTime < 5) {

View File

@ -5,6 +5,7 @@ import com.cm.common.constants.ISystemConstant;
import com.cm.common.result.ErrorResult;
import com.cm.systemcity.manager.CacheManager;
import com.cm.systemcity.pojo.dtos.config.PunchTimeDTO;
import com.cm.systemcity.pojo.dtos.config.PunchTimeDTOV2;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -33,22 +34,22 @@ public class ConfigAppController extends AbstractController {
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("getpunchtime")
public PunchTimeDTO getPunchTime() {
public PunchTimeDTOV2 getPunchTime() {
Map<String, Object> config = CacheManager.getInstance().getConfig();
PunchTimeDTO punchTimeDTO = new PunchTimeDTO();
punchTimeDTO.setAmStartPunchTime(config.get("amStartPunchTime").toString());
punchTimeDTO.setAmStartWorkTime(config.get("amStartWorkTime").toString());
punchTimeDTO.setAmEndWorkTime(config.get("amEndWorkTime").toString());
punchTimeDTO.setAmEndPunchTime(config.get("amEndPunchTime").toString());
punchTimeDTO.setPmStartPunchTime(config.get("pmStartPunchTime").toString());
punchTimeDTO.setPmStartWorkTime(config.get("pmStartWorkTime").toString());
punchTimeDTO.setPmEndWorkTime(config.get("pmEndWorkTime").toString());
punchTimeDTO.setPmEndPunchTime(config.get("pmEndPunchTime").toString());
punchTimeDTO.setnStartPunchTime(config.get("nStartPunchTime").toString());
punchTimeDTO.setnStartWorkTime(config.get("nStartWorkTime").toString());
punchTimeDTO.setnEndWorkTime(config.get("nEndWorkTime").toString());
punchTimeDTO.setnEndPunchTime(config.get("nEndPunchTime").toString());
return punchTimeDTO;
PunchTimeDTOV2 punchTimeDTOV2 = new PunchTimeDTOV2();
punchTimeDTOV2.setSignInStr(config.get("signInStr").toString());
punchTimeDTOV2.setSignInEnd(config.get("signInEnd").toString());
punchTimeDTOV2.setSignOutStr(config.get("signOutStr").toString());
punchTimeDTOV2.setSignOutEnd(config.get("signOutEnd").toString());
punchTimeDTOV2.setnSignInStr(config.get("nSignInStr").toString());
punchTimeDTOV2.setnSignInEnd(config.get("nSignInEnd").toString());
punchTimeDTOV2.setnSignOutStr(config.get("nSignOutStr").toString());
punchTimeDTOV2.setnSignOutEnd(config.get("nSignOutEnd").toString());
punchTimeDTOV2.setPositionRecordSrt(config.get("positionRecordStr").toString());
punchTimeDTOV2.setPositionRecordEnd(config.get("positionRecordEnd").toString());
punchTimeDTOV2.setnPositionRecordStr(config.get("nPositionRecordStr").toString());
punchTimeDTOV2.setnPositionRecordEnd(config.get("nPositionRecordEnd").toString());
return punchTimeDTOV2;
}
}

View File

@ -6,7 +6,6 @@ import com.cm.common.result.ErrorResult;
import com.cm.common.utils.DateUtil;
import com.cm.systemcity.dao.datarelease.IDataReleaseDao;
import com.cm.systemcity.pojo.dtos.dict.DictDTO;
import com.cm.systemcity.service.datarelease.IDataReleaseService;
import com.cm.systemcity.service.dict.IDictService;
import com.cm.systemcity.utils.BigDataResult;
import io.swagger.annotations.Api;
@ -33,8 +32,6 @@ import java.util.*;
@RequestMapping(ISystemConstant.APP_PREFIX + "/data-external-release")
public class DataReleaseController extends AbstractController {
@Autowired
private IDataReleaseService dataReleaseService;
@Autowired
private IDataReleaseDao dataReleaseDao;
@Autowired

View File

@ -49,8 +49,16 @@ public class SignManager {
* @return
*/
public UserSigninDTO getUserSigninDTO(String userId, String amPm) {
/**
* 2021-07-27
* 王帅
* -逻辑变更-校验签到人员打卡不区分上下午
*/
for (UserSigninDTO userSigninDTO : userSigninDTOs) {
if (!StringUtils.isBlank(amPm)) {
if (StringUtils.equals(userSigninDTO.getCreator(), userId)) {
return userSigninDTO;
}
/*if (!StringUtils.isBlank(amPm)) {
if (StringUtils.equals(userSigninDTO.getCreator(), userId) && StringUtils.equalsIgnoreCase(amPm, userSigninDTO.getAmPm())) {
return userSigninDTO;
}
@ -58,7 +66,7 @@ public class SignManager {
if (StringUtils.equals(userSigninDTO.getCreator(), userId)) {
return userSigninDTO;
}
}
}*/
}
return null;
}

View File

@ -0,0 +1,165 @@
package com.cm.systemcity.pojo.dtos.config;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
*
* @ClassName: PunchTimeDTOV2
* @Description: 打卡设置配置类
**/
@ApiModel
public class PunchTimeDTOV2 {
@ApiModelProperty(name = "signInStr", value = "网格员签到开始时间")
private String signInStr;
@ApiModelProperty(name = "signInEnd", value = "网格员签到截止时间")
private String signInEnd;
@ApiModelProperty(name = "signOutStr", value = "网格员签退开始时间")
private String signOutStr;
@ApiModelProperty(name = "signOutEnd", value = "网格员签退截止时间")
private String signOutEnd;
@ApiModelProperty(name = "nSignInStr", value = "专管员签到开始时间")
private String nSignInStr;
@ApiModelProperty(name = "nSignInEnd", value = "专管员签到截止时间")
private String nSignInEnd;
@ApiModelProperty(name = "nSignOutStr", value = "专管员签退开始时间")
private String nSignOutStr;
@ApiModelProperty(name = "nSignOutEnd", value = "专管员签退截止时间")
private String nSignOutEnd;
@ApiModelProperty(name = "positionRecordSrt", value = "网格员不记录轨迹开始时间")
private String positionRecordSrt;
@ApiModelProperty(name = "positionRecordEnd", value = "网格员不记录轨迹截止时间")
private String positionRecordEnd;
@ApiModelProperty(name = "nPositionRecordStr", value = "专管员不记录轨迹开始时间")
private String nPositionRecordStr;
@ApiModelProperty(name = "nPositionRecordEnd", value = "专管员不记录轨迹开始时间")
private String nPositionRecordEnd;
public String getSignInStr() {
return signInStr == null ? "" : signInStr;
}
public void setSignInStr(String signInStr) {
this.signInStr = signInStr;
}
public String getSignInEnd() {
return signInEnd == null ? "" : signInEnd;
}
public void setSignInEnd(String signInEnd) {
this.signInEnd = signInEnd;
}
public String getSignOutStr() {
return signOutStr == null ? "" : signOutStr;
}
public void setSignOutStr(String signOutStr) {
this.signOutStr = signOutStr;
}
public String getSignOutEnd() {
return signOutEnd == null ? "" : signOutEnd;
}
public void setSignOutEnd(String signOutEnd) {
this.signOutEnd = signOutEnd;
}
public String getnSignInStr() {
return nSignInStr == null ? "" : nSignInStr;
}
public void setnSignInStr(String nSignInStr) {
this.nSignInStr = nSignInStr;
}
public String getnSignInEnd() {
return nSignInEnd == null ? "" : nSignInEnd;
}
public void setnSignInEnd(String nSignInEnd) {
this.nSignInEnd = nSignInEnd;
}
public String getnSignOutStr() {
return nSignOutStr == null ? "" : nSignOutStr;
}
public void setnSignOutStr(String nSignOutStr) {
this.nSignOutStr = nSignOutStr;
}
public String getnSignOutEnd() {
return nSignOutEnd == null ? "" : nSignOutEnd;
}
public void setnSignOutEnd(String nSignOutEnd) {
this.nSignOutEnd = nSignOutEnd;
}
public String getPositionRecordSrt() {
return positionRecordSrt == null ? "" : positionRecordSrt;
}
public void setPositionRecordSrt(String positionRecordSrt) {
this.positionRecordSrt = positionRecordSrt;
}
public String getPositionRecordEnd() {
return positionRecordEnd == null ? "" : positionRecordEnd;
}
public void setPositionRecordEnd(String positionRecordEnd) {
this.positionRecordEnd = positionRecordEnd;
}
public String getnPositionRecordStr() {
return nPositionRecordStr == null ? "" : nPositionRecordStr;
}
public void setnPositionRecordStr(String nPositionRecordStr) {
this.nPositionRecordStr = nPositionRecordStr;
}
public String getnPositionRecordEnd() {
return nPositionRecordEnd == null ? "" : nPositionRecordEnd;
}
public void setnPositionRecordEnd(String nPositionRecordEnd) {
this.nPositionRecordEnd = nPositionRecordEnd;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("{");
sb.append("\"signInStr\":\"")
.append(signInStr).append('\"');
sb.append(",\"signInEnd\":\"")
.append(signInEnd).append('\"');
sb.append(",\"signOutStr\":\"")
.append(signOutStr).append('\"');
sb.append(",\"signOutEnd\":\"")
.append(signOutEnd).append('\"');
sb.append(",\"nSignInStr\":\"")
.append(nSignInStr).append('\"');
sb.append(",\"nSignInEnd\":\"")
.append(nSignInEnd).append('\"');
sb.append(",\"nSignOutStr\":\"")
.append(nSignOutStr).append('\"');
sb.append(",\"nSignOutEnd\":\"")
.append(nSignOutEnd).append('\"');
sb.append(",\"positionRecordSrt\":\"")
.append(positionRecordSrt).append('\"');
sb.append(",\"positionRecordEnd\":\"")
.append(positionRecordEnd).append('\"');
sb.append(",\"nPositionRecordStr\":\"")
.append(nPositionRecordStr).append('\"');
sb.append(",\"nPositionRecordEnd\":\"")
.append(nPositionRecordEnd).append('\"');
sb.append('}');
return sb.toString();
}
}

View File

@ -0,0 +1,266 @@
package com.cm.systemcity.pojo.vos.config;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* When you feel like quitting. Think about why you started
* 当你想要放弃的时候想想当初你为何开始
*
* @ClassName: ConfitVO
* @Description: 配置
* @Author: WangGeng
* @Date: 2019-08-14 15:36
* @Version: 1.0
**/
@ApiModel
public class ConfigVOV2 {
@ApiModelProperty(name = "signInStr", value = "网格员签到开始时间")
private String signInStr;
@ApiModelProperty(name = "signInEnd", value = "网格员签到截止时间")
private String signInEnd;
@ApiModelProperty(name = "signOutStr", value = "网格员签退开始时间")
private String signOutStr;
@ApiModelProperty(name = "signOutEnd", value = "网格员签退截止时间")
private String signOutEnd;
@ApiModelProperty(name = "nSignInStr", value = "专管员签到开始时间")
private String nSignInStr;
@ApiModelProperty(name = "nSignInEnd", value = "专管员签到截止时间")
private String nSignInEnd;
@ApiModelProperty(name = "nSignOutStr", value = "专管员签退开始时间")
private String nSignOutStr;
@ApiModelProperty(name = "nSignOutEnd", value = "专管员签退截止时间")
private String nSignOutEnd;
@ApiModelProperty(name = "positionRecordStr", value = "网格员不记录轨迹开始时间")
private String positionRecordStr;
@ApiModelProperty(name = "positionRecordEnd", value = "网格员不记录轨迹截止时间")
private String positionRecordEnd;
@ApiModelProperty(name = "nPositionRecordStr", value = "专管员不记录轨迹开始时间")
private String nPositionRecordStr;
@ApiModelProperty(name = "nPositionRecordEnd", value = "专管员不记录轨迹开始时间")
private String nPositionRecordEnd;
@ApiModelProperty(name = "mapLng", value = "地区中心经度")
private String mapLng;
@ApiModelProperty(name = "mapLat", value = "地区中心纬度")
private String mapLat;
@ApiModelProperty(name = "mapZoom", value = "地区缩放比例")
private String mapZoom;
@ApiModelProperty(name = "areaPoints", value = "区域描点")
private String areaPoints;
@ApiModelProperty(name = "pushSelfTime", value = "推送自己时间")
private String pushSelfTime;
@ApiModelProperty(name = "pushLeaderTime", value = "推送领导时间")
private String pushLeaderTime;
@ApiModelProperty(name = "pushOnUnWorkDay", value = "非工作日开启推送")
private String pushOnUnWorkDay;
@ApiModelProperty(name = "pushWorkStatus", value = "推送工作状态")
private String pushWorkStatus;
public String getSignInStr() {
return signInStr == null ? "" : signInStr;
}
public void setSignInStr(String signInStr) {
this.signInStr = signInStr;
}
public String getSignInEnd() {
return signInEnd == null ? "" : signInEnd;
}
public void setSignInEnd(String signInEnd) {
this.signInEnd = signInEnd;
}
public String getSignOutStr() {
return signOutStr == null ? "" : signOutStr;
}
public void setSignOutStr(String signOutStr) {
this.signOutStr = signOutStr;
}
public String getSignOutEnd() {
return signOutEnd == null ? "" : signOutEnd;
}
public void setSignOutEnd(String signOutEnd) {
this.signOutEnd = signOutEnd;
}
public String getnSignInStr() {
return nSignInStr == null ? "" : nSignInStr;
}
public void setnSignInStr(String nSignInStr) {
this.nSignInStr = nSignInStr;
}
public String getnSignInEnd() {
return nSignInEnd == null ? "" : nSignInEnd;
}
public void setnSignInEnd(String nSignInEnd) {
this.nSignInEnd = nSignInEnd;
}
public String getnSignOutStr() {
return nSignOutStr == null ? "" : nSignOutStr;
}
public void setnSignOutStr(String nSignOutStr) {
this.nSignOutStr = nSignOutStr;
}
public String getnSignOutEnd() {
return nSignOutEnd == null ? "" : nSignOutEnd;
}
public void setnSignOutEnd(String nSignOutEnd) {
this.nSignOutEnd = nSignOutEnd;
}
public String getPositionRecordStr() {
return positionRecordStr == null ? "" : positionRecordStr;
}
public void setPositionRecordStr(String positionRecordStr) {
this.positionRecordStr = positionRecordStr;
}
public String getPositionRecordEnd() {
return positionRecordEnd == null ? "" : positionRecordEnd;
}
public void setPositionRecordEnd(String positionRecordEnd) {
this.positionRecordEnd = positionRecordEnd;
}
public String getnPositionRecordStr() {
return nPositionRecordStr == null ? "" : nPositionRecordStr;
}
public void setnPositionRecordStr(String nPositionRecordStr) {
this.nPositionRecordStr = nPositionRecordStr;
}
public String getnPositionRecordEnd() {
return nPositionRecordEnd == null ? "" : nPositionRecordEnd;
}
public void setnPositionRecordEnd(String nPositionRecordEnd) {
this.nPositionRecordEnd = nPositionRecordEnd;
}
public String getMapLng() {
return mapLng == null ? "" : mapLng;
}
public void setMapLng(String mapLng) {
this.mapLng = mapLng;
}
public String getMapLat() {
return mapLat == null ? "" : mapLat;
}
public void setMapLat(String mapLat) {
this.mapLat = mapLat;
}
public String getMapZoom() {
return mapZoom == null ? "" : mapZoom;
}
public void setMapZoom(String mapZoom) {
this.mapZoom = mapZoom;
}
public String getAreaPoints() {
return areaPoints == null ? "" : areaPoints;
}
public void setAreaPoints(String areaPoints) {
this.areaPoints = areaPoints;
}
public String getPushSelfTime() {
return pushSelfTime == null ? "" : pushSelfTime;
}
public void setPushSelfTime(String pushSelfTime) {
this.pushSelfTime = pushSelfTime;
}
public String getPushLeaderTime() {
return pushLeaderTime == null ? "" : pushLeaderTime;
}
public void setPushLeaderTime(String pushLeaderTime) {
this.pushLeaderTime = pushLeaderTime;
}
public String getPushOnUnWorkDay() {
return pushOnUnWorkDay == null ? "" : pushOnUnWorkDay;
}
public void setPushOnUnWorkDay(String pushOnUnWorkDay) {
this.pushOnUnWorkDay = pushOnUnWorkDay;
}
public String getPushWorkStatus() {
return pushWorkStatus == null ? "" : pushWorkStatus;
}
public void setPushWorkStatus(String pushWorkStatus) {
this.pushWorkStatus = pushWorkStatus;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("{");
sb.append("\"signInStr\":\"")
.append(signInStr).append('\"');
sb.append(",\"signInEnd\":\"")
.append(signInEnd).append('\"');
sb.append(",\"signOutStr\":\"")
.append(signOutStr).append('\"');
sb.append(",\"signOutEnd\":\"")
.append(signOutEnd).append('\"');
sb.append(",\"nSignInStr\":\"")
.append(nSignInStr).append('\"');
sb.append(",\"nSignInEnd\":\"")
.append(nSignInEnd).append('\"');
sb.append(",\"nSignOutStr\":\"")
.append(nSignOutStr).append('\"');
sb.append(",\"nSignOutEnd\":\"")
.append(nSignOutEnd).append('\"');
sb.append(",\"positionRecordStr\":\"")
.append(positionRecordStr).append('\"');
sb.append(",\"positionRecordEnd\":\"")
.append(positionRecordEnd).append('\"');
sb.append(",\"nPositionRecordStr\":\"")
.append(nPositionRecordStr).append('\"');
sb.append(",\"nPositionRecordEnd\":\"")
.append(nPositionRecordEnd).append('\"');
sb.append(",\"mapLng\":\"")
.append(mapLng).append('\"');
sb.append(",\"mapLat\":\"")
.append(mapLat).append('\"');
sb.append(",\"mapZoom\":\"")
.append(mapZoom).append('\"');
sb.append(",\"areaPoints\":\"")
.append(areaPoints).append('\"');
sb.append(",\"pushSelfTime\":\"")
.append(pushSelfTime).append('\"');
sb.append(",\"pushLeaderTime\":\"")
.append(pushLeaderTime).append('\"');
sb.append(",\"pushOnUnWorkDay\":\"")
.append(pushOnUnWorkDay).append('\"');
sb.append(",\"pushWorkStatus\":\"")
.append(pushWorkStatus).append('\"');
sb.append('}');
return sb.toString();
}
}

View File

@ -1,12 +0,0 @@
package com.cm.systemcity.service.datarelease;
import com.cm.systemcity.service.BaseService;
/**
* @author xwangs
* @create 2021-07-23 11:40
* @description
*/
public interface IDataReleaseService {
}

View File

@ -1,15 +0,0 @@
package com.cm.systemcity.service.datarelease.impl;
import com.cm.systemcity.service.BaseService;
import com.cm.systemcity.service.datarelease.IDataReleaseService;
import org.springframework.stereotype.Service;
/**
* @author xwangs
* @create 2021-07-23 11:41
* @description
*/
@Service
public class DataReleaseServiceImpl extends BaseService implements IDataReleaseService {
}

View File

@ -237,12 +237,8 @@ public class UserLocationServiceImpl extends BaseService implements IUserLocatio
@Override
public List<UserLocationDTO> listUserLocation(Map<String, Object> params) throws SearchException {
String startTimeKey = "amStartPunchTime";
String endTimeKey = "amEndPunchTime";
if (StringUtils.equals(DateUtil.PM, DateUtil.getAmPm())) {
startTimeKey = "pmStartPunchTime";
endTimeKey = "pmEndPunchTime";
}
String startTimeKey = "signInEnd";
String endTimeKey = "signOutStr";
String today;
if (!Objects.isNull(params.get("showDay")) && !StringUtils.isBlank(params.get("showDay").toString())) {
today = params.get("showDay").toString();
@ -752,10 +748,14 @@ public class UserLocationServiceImpl extends BaseService implements IUserLocatio
// 获取配置信息
String day = startTime.substring(0, 10);
Map<String, Object> config = CacheManager.getInstance().getConfig();
String amStartTime = String.format("%s %s", day, config.get("amStartPunchTime").toString());
/*String amStartTime = String.format("%s %s", day, config.get("amStartPunchTime").toString());
String amEndTime = String.format("%s %s", day, config.get("amEndPunchTime").toString());
String pmStartTime = String.format("%s %s", day, config.get("pmStartPunchTime").toString());
String pmEndTime = String.format("%s %s", day, config.get("pmEndPunchTime").toString());
String pmEndTime = String.format("%s %s", day, config.get("pmEndPunchTime").toString());*/
String amStartTime = String.format("%s %s", day, config.get("signInEnd").toString());
String amEndTime = String.format("%s %s", day, config.get("positionRecordStr").toString());
String pmStartTime = String.format("%s %s", day, config.get("positionRecordEnd").toString());
String pmEndTime = String.format("%s %s", day, config.get("signOutStr").toString());
// 上午开始上班时间
DateTime amStartWorkTime = DateTimeFormat.forPattern(DATETIME_FORMATTER).parseDateTime(amStartTime);
// 上午结束上班时间

View File

@ -79,28 +79,23 @@ public class UserSigninServiceImpl extends BaseService implements IUserSigninSer
public SuccessResult saveUserSignin(String token, Map<String, Object> params) throws SaveException, SearchException {
AppTokenUser appTokenUser = AppTokenManager.getInstance().getToken(token).getAppTokenUser();
String amPm = DateUtil.getAmPm();
String startWorkTimeKey = "amStartWorkTime";
String startPunchTimeKey = "amStartPunchTime";
String signInStr = "signInStr";
String signInEnd = "signInEnd";
boolean hasNRole = hasNRole(appTokenUser.getRoles());
if (hasNRole) {
startWorkTimeKey = "nStartWorkTime";
startPunchTimeKey = "nStartPunchTime";
} else {
if (StringUtils.equals(DateUtil.PM, amPm)) {
startWorkTimeKey = "pmStartWorkTime";
startPunchTimeKey = "pmStartPunchTime";
}
signInStr = "nSignInStr";
signInEnd = "nSignInEnd";
}
LOG.debug("判断是否可以打卡签到");
if (isNotStartPunchTime(startPunchTimeKey)) {
throw new SearchException("未到签到时间,请在 " + CacheManager.getInstance().getConfig().get(startPunchTimeKey) + " 之后签到");
// 判断当前时间是否可以打卡
if (isNotStartPunchTime(signInStr)) {
throw new SearchException("未到签到时间,请在 " + CacheManager.getInstance().getConfig().get(signInStr) + " 之后签到");
}
UserSigninDTO userSigninDTO = checkUserSignIn(appTokenUser.getId(), hasNRole ? null : amPm);
if (userSigninDTO != null) {
throw new SearchException(amPm + "已经签到");
}
LOG.debug("判断{}是否迟到", amPm);
DateTime signInTime = DateTime.parse(String.format("%s %s", DateUtil.getDay(), CacheManager.getInstance().getConfig().get(startWorkTimeKey).toString()), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
DateTime signInTime = DateTime.parse(String.format("%s %s", DateUtil.getDay(), CacheManager.getInstance().getConfig().get(signInEnd).toString()), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
boolean isNotLate = signInTime.isAfter(System.currentTimeMillis());
params.put("isLate", !isNotLate);
params.put("isOutside", 0);

View File

@ -80,28 +80,23 @@ public class UserSignoutServiceImpl extends BaseService implements IUserSignoutS
public SuccessResult saveUserSignout(String token, Map<String, Object> params) throws SaveException, SearchException {
AppTokenUser appTokenUser = AppTokenManager.getInstance().getToken(token).getAppTokenUser();
String amPm = DateUtil.getAmPm();
String startWorkTimeKey = "amEndWorkTime";
String startPunchTimeKey = "amEndPunchTime";
String signOutStr = "signOutStr";
String signOutEnd = "signOutEnd";
boolean hasNRole = hasNRole(appTokenUser.getRoles());
if (hasNRole) {
startWorkTimeKey = "nEndWorkTime";
startPunchTimeKey = "nEndPunchTime";
} else {
if (StringUtils.equals(DateUtil.PM, amPm)) {
startWorkTimeKey = "pmEndWorkTime";
startPunchTimeKey = "pmEndPunchTime";
}
signOutStr = "nSignOutStr";
signOutEnd = "nSignOutEnd";
}
LOG.debug("判断是否可以打卡签退");
if (isNotStartPunchTime(startPunchTimeKey)) {
throw new SearchException("已过签退时间,请在 " + CacheManager.getInstance().getConfig().get(startPunchTimeKey) + " 之前签退");
// 判断当前时间是否可以签退
if (isNotStartPunchTime(signOutEnd)) {
throw new SearchException("已过签退时间,请在 " + CacheManager.getInstance().getConfig().get(signOutEnd) + " 之前签退");
}
UserSignoutDTO userSignoutDTO = checkUserSignOut(appTokenUser.getId(), hasNRole ? null : amPm);
if (userSignoutDTO != null) {
throw new SearchException(amPm + "已经签退");
}
LOG.debug("判断{}是否早退", amPm);
DateTime signOutTime = DateTime.parse(String.format("%s %s", DateUtil.getDay(), CacheManager.getInstance().getConfig().get(startWorkTimeKey).toString()), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
DateTime signOutTime = DateTime.parse(String.format("%s %s", DateUtil.getDay(), CacheManager.getInstance().getConfig().get(signOutStr).toString()), DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
boolean isNotEarly = signOutTime.isBefore(System.currentTimeMillis());
params.put("isEarly", !isNotEarly);
params.put("isOutside", 0);
@ -265,7 +260,6 @@ public class UserSignoutServiceImpl extends BaseService implements IUserSignoutS
* @throws SearchException
*/
private UserSignoutDTO checkUserSignOut(String userId, String amPm) throws SearchException {
LOG.debug("检查是否签退");
UserSignoutDTO userSignoutDTO = SignManager.getInstance().getUserSignoutDTO(userId, amPm);
if (userSignoutDTO != null) {
return userSignoutDTO;

View File

@ -182,11 +182,11 @@
<if test="signTime != null and signTime != ''">
AND
LEFT(t1.gmt_create, 10) = #{signTime}
</if>
</if><!--
<if test="amPm != null and amPm != ''">
AND
t1.am_pm = #{amPm}
</if>
</if>-->
<if test="creator != null and creator != ''">
AND
t1.creator = #{creator}

View File

@ -153,11 +153,11 @@
<if test="signTime != null and signTime != ''">
AND
LEFT(t1.gmt_create, 10) = #{signTime}
</if>
</if><!--
<if test="amPm != null and amPm != ''">
AND
t1.am_pm = #{amPm}
</if>
</if>-->
<if test="creator != null and creator != ''">
AND
t1.creator = #{creator}

View File

@ -24,41 +24,41 @@
<div class="layui-row layui-col-space1">
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">【网格长】上午打卡</div>
<div class="layui-card-header">【网格员】打卡设置</div>
<div class="layui-card-body">
<div class="layui-row">
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">开始签到</label>
<label class="layui-form-label">签到开始</label>
<div class="layui-input-block">
<input type="text" name="amStartPunchTime" v-model="formObject.amStartPunchTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="signInStr" v-model="formObject.signInStr" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">结束签到</label>
<label class="layui-form-label">签到截止</label>
<div class="layui-input-block">
<input type="text" name="amStartWorkTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="signInEnd" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">开始签退</label>
<label class="layui-form-label strong-text">签退开始</label>
<div class="layui-input-block">
<input type="text" name="amEndWorkTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="signOutStr" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">结束签退</label>
<label class="layui-form-label strong-text">签退截止</label>
<div class="layui-input-block">
<input type="text" name="amEndPunchTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="signOutEnd" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
@ -69,41 +69,41 @@
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">【网格长】下午打卡</div>
<div class="layui-card-header">【网格员专管员】不记录轨迹设置</div>
<div class="layui-card-body">
<div class="layui-row">
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">开始签到</label>
<label class="layui-form-label" style="font-size: 12px;">网格员时间始</label>
<div class="layui-input-block">
<input type="text" name="pmStartPunchTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="positionRecordStr" placeholder="开始时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">结束签到</label>
<label class="layui-form-label strong-text" style="font-size: 12px;">网格员时间止</label>
<div class="layui-input-block">
<input type="text" name="pmStartWorkTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="positionRecordEnd" placeholder="结束时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">开始签退</label>
<label class="layui-form-label" style="font-size: 12px;">专管员时间始</label>
<div class="layui-input-block">
<input type="text" name="pmEndWorkTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="nPositionRecordStr" placeholder="开始时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">结束签退</label>
<label class="layui-form-label" style="font-size: 12px;">专管员时间止</label>
<div class="layui-input-block">
<input type="text" name="pmEndPunchTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="nPositionRecordEnd" placeholder="结束时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
@ -117,41 +117,41 @@
<div class="layui-row layui-col-space1">
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">【专管员】打卡</div>
<div class="layui-card-header">【专管员】打卡设置</div>
<div class="layui-card-body">
<div class="layui-row">
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">开始签到</label>
<label class="layui-form-label strong-text">签到开始</label>
<div class="layui-input-block">
<input type="text" name="nStartPunchTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="nSignInStr" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">结束签到</label>
<label class="layui-form-label strong-text">签到截止</label>
<div class="layui-input-block">
<input type="text" name="nStartWorkTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="nSignInEnd" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">开始签退</label>
<label class="layui-form-label strong-text">签退开始</label>
<div class="layui-input-block">
<input type="text" name="nEndWorkTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="nSignOutStr" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label strong-text">结束签退</label>
<label class="layui-form-label strong-text">签退截止</label>
<div class="layui-input-block">
<input type="text" name="nEndPunchTime" placeholder="点击选择时间" style="cursor: pointer;"
<input type="text" name="nSignOutEnd" placeholder="点击选择时间" style="cursor: pointer;"
lay-verify readonly="readonly" autocomplete="off" class="layui-input date-hour">
</div>
</div>
@ -205,9 +205,6 @@
<div class="layui-card-header">地图中心控制</div>
<div class="layui-card-body">
<div class="layui-row">
<div class="layui-col-md12">
<div id="mapContainer" style="width:100%;height:300px;"></div>
</div>
<div class="layui-col-md4">
<label for="mapLng">中心经度</label>
<input type="text" class="form-control" id="mapLng" name="mapLng" readonly>
@ -220,14 +217,14 @@
<label for="mapZoom">缩放比例</label>
<input type="number" class="form-control" id="mapZoom" name="mapZoom">
</div>
<div class="layui-col-md12">
<div id="mapContainer" style="width:100%;height:500px;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-col-md6" style="display: none">
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
@ -242,6 +239,9 @@
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-md12">
<div class="form-group form-footer edit-button-footer">
<div class="col-lg-offset-3 col-lg-6 text-center">
@ -345,7 +345,6 @@
form.on('submit(submitForm)', function(formData) {
var loadLayerIndex;
debugger;
var areaPoints = '';
for(var i = 0, item = areas[i]; item = areas[i++];) {
if(typeof(item.points) == 'undefined' || item.points == null) {