Compare commits

...

3 Commits

Author SHA1 Message Date
方亮 241ec43730 扫码出场 2025-10-23 17:06:07 +08:00
方亮 a110304fd2 Merge remote-tracking branch 'origin/main' 2025-10-23 17:05:45 +08:00
方亮 55a68298e7 添加施工人员手机号登录方式 2025-10-23 16:09:57 +08:00
11 changed files with 124 additions and 17 deletions

View File

@ -105,7 +105,7 @@ public class SysPasswordService {
throw new CaptchaException("手机号不能为空"); throw new CaptchaException("手机号不能为空");
} }
String code = VerificationCodeUtils.generateVerificationCode(VerificationCodeUtils.CodeType.NUMERIC); String code = VerificationCodeUtils.generateVerificationCode(VerificationCodeUtils.CodeType.NUMERIC);
String str = "您的验证码为" + code + "尊敬的客户以上验证码3分钟有效微服务平台提醒您:转发可能导致账号被盗,请勿将验证码泄露于他人"; String str = "您的验证码为" + code + "尊敬的客户以上验证码3分钟有效实名制提醒您:转发可能导致账号被盗,请勿将验证码泄露于他人";
String verifyKey = CacheConstants.VERIFICATION_CODE + phone; String verifyKey = CacheConstants.VERIFICATION_CODE + phone;
String s = SmsUtils.smsToken(phone, str, ""); String s = SmsUtils.smsToken(phone, str, "");
if (StringUtils.isNotEmpty(s)) { if (StringUtils.isNotEmpty(s)) {

View File

@ -1,21 +1,11 @@
package com.bonus.bmw.controller; package com.bonus.bmw.controller;
import com.bonus.bmw.domain.dto.FileBasicMsgDto;
import com.bonus.bmw.domain.dto.PmWorkerDto; import com.bonus.bmw.domain.dto.PmWorkerDto;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.po.BmSubContract;
import com.bonus.bmw.domain.po.PmSubCompany;
import com.bonus.bmw.domain.vo.BmSubContractVo;
import com.bonus.bmw.domain.vo.PmWorker; import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.domain.vo.TreeVo; import com.bonus.bmw.domain.vo.TreeVo;
import com.bonus.bmw.service.AppService; import com.bonus.bmw.service.AppService;
import com.bonus.bmw.service.BmSubContractService;
import com.bonus.common.core.utils.encryption.Sm4Utils;
import com.bonus.common.core.utils.json.FastJsonHelper;
import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.annotation.InnerAuth; import com.bonus.common.security.annotation.InnerAuth;
@ -28,10 +18,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* app部分接口 * app部分接口
@ -136,4 +122,16 @@ public class AppController extends BaseController {
return error("系统异常,请联系管理员"); return error("系统异常,请联系管理员");
} }
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:ein:edit"))
@PostMapping("/appWorkerExitFile")
@SysLog(title = "人员出场", businessType = OperaType.UPDATE, logType = 0, module = "施工人员->出入场管理->人员出场", details = "人员出场")
public AjaxResult appWorkerExitFile(@Validated @RequestBody PmWorkerDto workerDto) {
try {
return service.appWorkerExitFile(workerDto);
} catch (Exception e) {
logger.error(e.toString(), e);
}
return error("系统异常,请联系管理员");
}
} }

View File

@ -161,6 +161,24 @@ public class PmWorkerExitController extends BaseController {
return getDataTableError(new ArrayList<>()); return getDataTableError(new ArrayList<>());
} }
/**
* 手机号扫码出场或补文件
* @param o
* @return
*/
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false))
@GetMapping("/getWorkerListByPhone")
@SysLog(title = "扫码出场", businessType = OperaType.QUERY, logType = 0, module = "施工人员->出入场管理->扫码出场", details = "扫码出场")
public AjaxResult getWorkerListByPhone(PmWorkerDto o) {
try {
List<PmWorker> list = service.getWorkerListByPhone(o);
return AjaxResult.success(list);
} catch (Exception e) {
logger.error(e.toString(), e);
}
return AjaxResult.error("系统异常,请联系管理员");
}
/** /**
* 查询工程出场历史列表 * 查询工程出场历史列表
* @param o * @param o

View File

@ -198,4 +198,6 @@ public class PmWorker {
private String facePhotoBase64; private String facePhotoBase64;
private String type;
} }

View File

@ -58,4 +58,6 @@ public interface PmWorkerExitMapper {
* @return * @return
*/ */
List<PmWorker> selectWorkListByProId(PmWorkerDto o); List<PmWorker> selectWorkListByProId(PmWorkerDto o);
List<PmWorker> getWorkerListByPhone(PmWorkerDto o);
} }

View File

@ -54,4 +54,6 @@ public interface AppService {
* @return * @return
*/ */
AjaxResult appWorkerExit(PmWorkerDto workerDto) throws Exception; AjaxResult appWorkerExit(PmWorkerDto workerDto) throws Exception;
AjaxResult appWorkerExitFile(PmWorkerDto workerDto);
} }

View File

@ -58,4 +58,12 @@ public interface PmWorkerExitService {
* @return * @return
*/ */
List<PmWorker> selectWorkListByProId(PmWorkerDto o); List<PmWorker> selectWorkListByProId(PmWorkerDto o);
/**
* 根据手机号查询人员列表
*
* @param o
* @return
*/
List<PmWorker> getWorkerListByPhone(PmWorkerDto o);
} }

View File

@ -241,7 +241,7 @@ public class AppServiceImpl implements AppService {
String[] split = record.getPhotoIds().split(","); String[] split = record.getPhotoIds().split(",");
for (int x = 0; x < split.length; x++) { for (int x = 0; x < split.length; x++) {
int i = mapper.updateFileMsg(split[x], Constants.FILE_UPLOAD_WORKER_EXIT, record.getId()); int i = mapper.updateFileMsg(split[x], Constants.FILE_UPLOAD_WORKER_EXIT, record.getId());
log.error("app更新人员出场:第{}条,{}", x, i > 0 ? "更新成功" : "更新失败"); log.error("app人员出场-图片遍历:第{}条,{}", x, i > 0 ? "更新成功" : "更新失败");
} }
isUploadFile = 1; isUploadFile = 1;
} }
@ -261,6 +261,24 @@ public class AppServiceImpl implements AppService {
} }
} }
@Override
public AjaxResult appWorkerExitFile(PmWorkerDto record) {
//修改在场记录表状态
int einStatus = 2;
//是否上传文件
int isUploadFile = 0;
if(!StringUtils.isEmpty(record.getPhotoIds())){
String[] split = record.getPhotoIds().split(",");
for (int x = 0; x < split.length; x++) {
int i = mapper.updateFileMsg(split[x], Constants.FILE_UPLOAD_WORKER_EXIT, record.getId());
log.error("app人员出场-补-图片遍历:第{}条,{}", x, i > 0 ? "更新成功" : "更新失败");
}
isUploadFile = 1;
}
int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),"");
return k>0 ? AjaxResult.success() :AjaxResult.error("离场失败");
}
static void delUrkUser(PmWorkerDto record, UrkSendService urkSendService) throws Exception { static void delUrkUser(PmWorkerDto record, UrkSendService urkSendService) throws Exception {
int workerId = record.getWorkerId()==null?0:record.getWorkerId(); int workerId = record.getWorkerId()==null?0:record.getWorkerId();
int proId = record.getProId()==null?0:record.getProId(); int proId = record.getProId()==null?0:record.getProId();

View File

@ -215,4 +215,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
return mapper.selectWorkListByProId(o); return mapper.selectWorkListByProId(o);
} }
@Override
public List<PmWorker> getWorkerListByPhone(PmWorkerDto o) {
return mapper.getWorkerListByPhone(o);
}
} }

View File

@ -23,6 +23,7 @@
<result column="is_upload_file" property="isUploadFile" /> <result column="is_upload_file" property="isUploadFile" />
<result column="days_since_exit" property="daysSinceExit" /> <result column="days_since_exit" property="daysSinceExit" />
<result column="is_shanghai" property="isShanghai"/> <result column="is_shanghai" property="isShanghai"/>
<result column="type" property="type"/>
</resultMap> </resultMap>
<select id="selectWorkList" resultMap="BaseResultMap"> <select id="selectWorkList" resultMap="BaseResultMap">
@ -209,4 +210,57 @@
</if> </if>
</where> </where>
</select> </select>
<select id="getWorkerListByPhone" resultMap="BaseResultMap">
SELECT
bwepr.id,
pw.id as worker_id,
pw.`name`,
pw.id_number,
bwepr.pro_id,
bwepr.pro_name,
bwepr.sub_id,
bwepr.sub_name,
bwepr.team_id,
bwepr.team_name,
bwepr.post_id,
bwepr.post_name,
pp.is_shanghai,
'1' as type
FROM
pm_worker pw
INNER JOIN bm_worker_ein_pro_record bwepr ON bwepr.worker_id = pw.id
INNER JOIN pm_project pp ON pp.id = bwepr.pro_id
WHERE
pw.is_active = 1
AND pw.phone = #{phone}
AND bwepr.is_upload_file is null
UNION
SELECT
bwepr.id,
pw.id as worker_id,
pw.`name`,
pw.id_number,
bwepr.pro_id,
bwepr.pro_name,
bwepr.sub_id,
bwepr.sub_name,
bwepr.team_id,
bwepr.team_name,
bwepr.post_id,
bwepr.post_name,
pp.is_shanghai,
'2' as type
FROM
pm_worker pw
INNER JOIN bm_worker_ein_pro_record bwepr ON bwepr.worker_id = pw.id
INNER JOIN pm_project pp ON pp.id = bwepr.pro_id
WHERE
pw.is_active = 1
AND pw.phone = #{phone}
AND bwepr.is_upload_file = 0 and pp.is_shanghai = 0
and if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) &lt; 31
</select>
</mapper> </mapper>

View File

@ -440,6 +440,6 @@
<select id="selectWorkerByPhotoNumber" resultType="int"> <select id="selectWorkerByPhotoNumber" resultType="int">
select count(1) select count(1)
from pm_worker from pm_worker
where phone = #{photoNumber} where phone = #{photoNumber} and is_active = 1
</select> </select>
</mapper> </mapper>