Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2025-10-20 16:10:14 +08:00
8 changed files with 57 additions and 30 deletions

View File

@ -280,6 +280,13 @@
<artifactId>netty-all</artifactId> <artifactId>netty-all</artifactId>
</dependency> </dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version> <!-- 最新版本可自行调整 -->
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -3,10 +3,12 @@ package org.dromara.project.controller;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.project.domain.BusAttendanceMachine; import org.dromara.project.domain.BusAttendanceMachine;
import org.dromara.project.domain.dto.attendance.*; import org.dromara.project.domain.dto.attendance.*;
import org.dromara.project.domain.vo.attendance.DeviceResult;
import org.dromara.project.service.IBusAttendanceMachineService; import org.dromara.project.service.IBusAttendanceMachineService;
import org.dromara.project.service.IBusAttendanceService; import org.dromara.project.service.IBusAttendanceService;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
@ -17,7 +19,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Base64;
/** /**
* 考勤 * 考勤
@ -38,11 +40,11 @@ public class BusAttendanceDeviceController extends BaseController {
@PostMapping("/api/v1/record/face") @PostMapping("/api/v1/record/face")
@SaIgnore @SaIgnore
public R<Boolean> punchCardByFace(@RequestBody DeviceDto dto) { public DeviceResult punchCardByFace(@RequestBody DeviceDto dto) {
//打印接收数据 //打印接收数据
log.info("接收数据:{}", dto); log.info("接收数据:{}", dto);
if (dto.getLogs().isEmpty()) { if (dto.getLogs().isEmpty()) {
return R.fail("没有数据"); return new DeviceResult(500, "没有数据");
} }
Log first = dto.getLogs().getFirst(); Log first = dto.getLogs().getFirst();
@ -53,7 +55,7 @@ public class BusAttendanceDeviceController extends BaseController {
.last("limit 1") .last("limit 1")
.one(); .one();
if (one == null || one.getProjectId() == null) { if (one == null || one.getProjectId() == null) {
return R.fail("考勤机不存在或未关联项目"); return new DeviceResult(500, "考勤机不存在或未关联项目");
} }
String recogTime = first.getRecog_time(); String recogTime = first.getRecog_time();
@ -74,14 +76,14 @@ public class BusAttendanceDeviceController extends BaseController {
// 假设first.getImage()返回base64字符串且你有一个文件名 // 假设first.getImage()返回base64字符串且你有一个文件名
MultipartFile file = convert(first.getPhoto(), "face.jpg"); MultipartFile file = convert(first.getPhoto(), "face.jpg");
log.info("开始打卡"); log.info("开始打卡");
return R.ok(busAttendanceService.punchCardByFace(file, req)); busAttendanceService.punchCardByFace(file, req);
return new DeviceResult(0, "打卡成功");
} catch (IOException e) { } catch (IOException e) {
return R.fail("文件转换失败"); return new DeviceResult(500, "文件转换失败");
} }
} }
public static MultipartFile convert(String base64String, String fileName) throws IOException { public static MultipartFile convert(String base64String, String fileName) throws IOException {
// 先进行URL解码如果是URL编码过的数据 // 先进行URL解码如果是URL编码过的数据
try { try {
@ -96,23 +98,11 @@ public class BusAttendanceDeviceController extends BaseController {
} }
// 解码base64字符串 // 解码base64字符串
byte[] decodedBytes = Base64.getDecoder().decode(base64String); byte[] decodedBytes = Base64.decodeBase64(base64String);
// 创建MultipartFile对象 // 创建MultipartFile对象
return new MockMultipartFile(fileName, fileName, "image/jpeg", decodedBytes); return new MockMultipartFile(fileName, fileName, "image/jpeg", decodedBytes);
} }
} }

View File

@ -0,0 +1,16 @@
package org.dromara.project.domain.vo.attendance;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeviceResult {
private Integer Result;
private String Msg;
}

View File

@ -12,14 +12,11 @@ public enum XzdClassEnum {
JS_ZHFW_JINDU("xzd_js_zhfw_jindu"), //综合服务合同进度结算 JS_ZHFW_JINDU("xzd_js_zhfw_jindu"), //综合服务合同进度结算
JS_CG_JUNGON("xzd_js_cg_jungon"), //采购合同竣工结算 JS_CG_JUNGON("xzd_js_cg_jungon"), //采购合同竣工结算
JS_CG_JINDU("xzd_js_cg_jindu"), //采购合同进度结算 JS_CG_JINDU("xzd_js_cg_jindu"), //采购合同进度结算
// 分包合同 FENBAOHETONG_INFORMATION("xzd_subcontract"),//分包合同
FENBAOHETONG_INFORMATION("xzd_subcontract"), FENBAOHETONGBINGGENG_INFORMATION("xzd_subcontract_change"),//分包合同变更
// 分包合同变更 CAIGOUHETONG_INFORMATION("xzd_purchase_contract_alteration"), //采购变更合同
FENBAOHETONGBINGGENG_INFORMATION("xzd_subcontract_change"), FENBAOHETONG_JINDU("xzd_settlement_of_subcontracting_contract"),//分包合同进度结算
// 采购变更合同 PURCHASE_CONTRACT_INFORMATION("xzd_purchase_contract_information");//采购合同
CAIGOUHETONG_INFORMATION("xzd_purchase_contract_alteration"),
// 采购合同
PURCHASE_CONTRACT_INFORMATION("xzd_purchase_contract_information");

View File

@ -5,6 +5,9 @@ public enum ZxdEnum {
TYPE_CORRESPONDENT("客户","1"), TYPE_CORRESPONDENT("客户","1"),
TYPE_SUPPLIER("供应商","2"), TYPE_SUPPLIER("供应商","2"),
FENBAOHET("分包合同","2"),
HETONGLEIXING("合同外清单","1"),
HETONGLEIXINGNEI("合同内清单","2"),
PURCHASE_PREFIX("采购合同信息前缀","CCTEG(CWZ)"), PURCHASE_PREFIX("采购合同信息前缀","CCTEG(CWZ)"),
FENBAOHETONG_PREFIX("分包合同信息前缀","CCTEG(CSG)"); FENBAOHETONG_PREFIX("分包合同信息前缀","CCTEG(CSG)");

View File

@ -40,6 +40,11 @@ public class XzdAlterationInventory extends BaseEntity {
*/ */
private String code; private String code;
/**
* 合同类型1、承包合同2、分包合同3、采购合同4综合服务合同
*/
private String contractType;
/** /**
* 合同清单名称 * 合同清单名称
*/ */

View File

@ -44,6 +44,11 @@ public class XzdAlterationInventoryBo extends BaseEntity {
*/ */
private String contractListName; private String contractListName;
/**
* 合同类型1、承包合同2、分包合同3、采购合同4综合服务合同
*/
private String contractType;
/** /**
* 项目名称 * 项目名称
*/ */

View File

@ -94,8 +94,12 @@ public class XzdAlterationInventoryVo implements Serializable {
* 含税单价 * 含税单价
*/ */
@ExcelProperty(value = "含税单价") @ExcelProperty(value = "含税单价")
private BigDecimal taxInclusiveUnitPrice;
/**
* 合同类型1、承包合同2、分包合同3、采购合同4综合服务合同
*/
private String contractType;
/** /**
* 本期结算数量 * 本期结算数量
*/ */