[add] 添加分包物料管理相关接口 [update] 修改分包包结构,修改知识库部分逻辑
This commit is contained in:
@ -283,6 +283,6 @@ sparta:
|
|||||||
url: http://119.3.204.120:8040
|
url: http://119.3.204.120:8040
|
||||||
client-id: test
|
client-id: test
|
||||||
client-secret: 115fcb08fa6742a1b086d9bb80a6ad59
|
client-secret: 115fcb08fa6742a1b086d9bb80a6ad59
|
||||||
# 身份证加密密钥
|
# 身份证加密密钥(32 位)
|
||||||
id-card:
|
id-card:
|
||||||
encrypt-key: 7ae260d150a14027d2238a1cf80a48ef
|
encrypt-key: 7ae260d150a14027d2238a1cf80a48ef
|
||||||
|
@ -267,13 +267,21 @@ justauth:
|
|||||||
redirect-uri: ${justauth.address}/social-callback?source=gitlab
|
redirect-uri: ${justauth.address}/social-callback?source=gitlab
|
||||||
# 和风天气 https://dev.qweather.com/
|
# 和风天气 https://dev.qweather.com/
|
||||||
weather:
|
weather:
|
||||||
key-id: xx
|
key-id: T65EAABUXC
|
||||||
project-id: xx
|
project-id: 2JTHPUQ5YY
|
||||||
private-key: xx
|
private-key: MC4CAQAwBQYDK2VwBCIEIMAglX7IsxYiTeM+FXXnvCUsIggajeP4s8gAllewm6BN
|
||||||
api-host: xx
|
api-host: n35rk53njv.re.qweatherapi.com
|
||||||
# dxf转 geojson 执行文件名
|
# dxf转 geojson 执行文件名
|
||||||
dxf2GeoJson:
|
dxf2GeoJson:
|
||||||
file-name: main
|
file-name: main
|
||||||
ys7:
|
ys7:
|
||||||
app-key: 3acf9f1a43dc4209841e0893003db0a2
|
app-key: 3acf9f1a43dc4209841e0893003db0a2
|
||||||
app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36
|
app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36
|
||||||
|
# 斯巴达算法
|
||||||
|
sparta:
|
||||||
|
url: http://119.3.204.120:8040
|
||||||
|
client-id: test
|
||||||
|
client-secret: 115fcb08fa6742a1b086d9bb80a6ad59
|
||||||
|
# 身份证加密密钥(32 位)
|
||||||
|
id-card:
|
||||||
|
encrypt-key: 7ae260d150a14027d2238a1cf80a48ef
|
||||||
|
@ -121,7 +121,9 @@ security:
|
|||||||
- /*/api-docs/**
|
- /*/api-docs/**
|
||||||
- /warm-flow-ui/token-name
|
- /warm-flow-ui/token-name
|
||||||
- /other/ys7Device/webhook
|
- /other/ys7Device/webhook
|
||||||
|
# todo 仅测试
|
||||||
- /facility/matrix/**
|
- /facility/matrix/**
|
||||||
|
- /changxie/callback
|
||||||
|
|
||||||
# 多租户配置
|
# 多租户配置
|
||||||
tenant:
|
tenant:
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package org.dromara.project.constant;
|
package org.dromara.contractor.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025/4/2 17:18
|
* @date 2025/4/2 17:18
|
||||||
*/
|
*/
|
||||||
public interface BusConstructionUserConstant {
|
public interface SubConstructionUserConstant {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 施工人员文件类型字典
|
* 施工人员文件类型字典
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.controller;
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -15,13 +15,13 @@ import org.dromara.common.log.enums.BusinessType;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.project.domain.exportvo.BusConstructionUserExportVo;
|
import org.dromara.contractor.domain.dto.constructionuser.*;
|
||||||
import org.dromara.project.domain.dto.constructionuser.*;
|
import org.dromara.contractor.domain.exportvo.BusConstructionUserExportVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserAttendanceMonthVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserAttendanceMonthVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserAttendanceTotalVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserAttendanceTotalVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserGisVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserGisVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserVo;
|
||||||
import org.dromara.project.service.IBusConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -37,46 +37,46 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/project/constructionUser")
|
@RequestMapping("/project/constructionUser")
|
||||||
public class BusConstructionUserController extends BaseController {
|
public class SubConstructionUserController extends BaseController {
|
||||||
|
|
||||||
private final IBusConstructionUserService busConstructionUserService;
|
private final ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员列表
|
* 查询施工人员列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:list")
|
@SaCheckPermission("contractor:constructionUser:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<BusConstructionUserVo> list(BusConstructionUserQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubConstructionUserVo> list(SubConstructionUserQueryReq req, PageQuery pageQuery) {
|
||||||
return busConstructionUserService.queryPageList(req, pageQuery);
|
return constructionUserService.queryPageList(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询每个施工人员总的考勤列表
|
* 查询每个施工人员总的考勤列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:attendance:list")
|
@SaCheckPermission("contractor:attendance:list")
|
||||||
@GetMapping("/list/attendance/total")
|
@GetMapping("/list/attendance/total")
|
||||||
public TableDataInfo<BusConstructionUserAttendanceTotalVo> listAttendanceTotal(BusConstructionUserAttendanceQueryReq req,
|
public TableDataInfo<SubConstructionUserAttendanceTotalVo> listAttendanceTotal(SubConstructionUserAttendanceQueryReq req,
|
||||||
PageQuery pageQuery) {
|
PageQuery pageQuery) {
|
||||||
return busConstructionUserService.queryPageAttendanceList(req, pageQuery);
|
return constructionUserService.queryPageAttendanceList(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员月份考勤列表
|
* 查询施工人员月份考勤列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:list")
|
@SaCheckPermission("contractor:constructionUser:list")
|
||||||
@GetMapping("/list/attendance/month")
|
@GetMapping("/list/attendance/month")
|
||||||
public R<List<BusConstructionUserAttendanceMonthVo>> listAttendanceMonth(BusConstructionUserAttendanceMonthReq req) {
|
public R<List<SubConstructionUserAttendanceMonthVo>> listAttendanceMonth(SubConstructionUserAttendanceMonthReq req) {
|
||||||
return R.ok(busConstructionUserService.queryAttendanceMonthList(req));
|
return R.ok(constructionUserService.queryAttendanceMonthList(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出施工人员列表
|
* 导出施工人员列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:export")
|
@SaCheckPermission("contractor:constructionUser:export")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.EXPORT)
|
@Log(title = "施工人员", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(BusConstructionUserQueryReq req, HttpServletResponse response) {
|
public void export(SubConstructionUserQueryReq req, HttpServletResponse response) {
|
||||||
List<BusConstructionUserExportVo> list = busConstructionUserService.queryList(req);
|
List<BusConstructionUserExportVo> list = constructionUserService.queryList(req);
|
||||||
ExcelUtil.exportExcel(list, "施工人员", BusConstructionUserExportVo.class, response);
|
ExcelUtil.exportExcel(list, "施工人员", BusConstructionUserExportVo.class, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,97 +85,97 @@ public class BusConstructionUserController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:query")
|
@SaCheckPermission("contractor:constructionUser:query")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<BusConstructionUserVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SubConstructionUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
return R.ok(busConstructionUserService.queryById(id));
|
return R.ok(constructionUserService.queryById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询大屏施工人员信息
|
* 查询大屏施工人员信息
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:query")
|
@SaCheckPermission("contractor:constructionUser:query")
|
||||||
@GetMapping("/gis")
|
@GetMapping("/gis")
|
||||||
public R<BusConstructionUserGisVo> getGisData(BusConstructionUserGisReq req) {
|
public R<SubConstructionUserGisVo> getGisData(SubConstructionUserGisReq req) {
|
||||||
return R.ok(busConstructionUserService.getGisData(req));
|
return R.ok(constructionUserService.getGisData(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增施工人员
|
* 新增施工人员
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:add")
|
@SaCheckPermission("contractor:constructionUser:add")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.INSERT)
|
@Log(title = "施工人员", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody BusConstructionUserCreateReq req) {
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody SubConstructionUserCreateReq req) {
|
||||||
return R.ok(busConstructionUserService.insertByBo(req));
|
return R.ok(constructionUserService.insertByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员
|
* 修改施工人员
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:edit")
|
@SaCheckPermission("contractor:constructionUser:edit")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusConstructionUserUpdateReq req) {
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubConstructionUserUpdateReq req) {
|
||||||
return toAjax(busConstructionUserService.updateByBo(req));
|
return toAjax(constructionUserService.updateByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员工资
|
* 修改施工人员工资
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:edit")
|
@SaCheckPermission("contractor:constructionUser:edit")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("/salary")
|
@PutMapping("/salary")
|
||||||
public R<Void> editSalary(@Validated(EditGroup.class) @RequestBody BusConstructionUserUpdateSalaryReq req) {
|
public R<Void> editSalary(@Validated(EditGroup.class) @RequestBody SubConstructionUserUpdateSalaryReq req) {
|
||||||
return toAjax(busConstructionUserService.updateSalary(req));
|
return toAjax(constructionUserService.updateSalary(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员打卡状态
|
* 修改施工人员打卡状态
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:edit")
|
@SaCheckPermission("contractor:constructionUser:edit")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("/clock")
|
@PutMapping("/clock")
|
||||||
public R<Void> editClock(@Validated(EditGroup.class) @RequestBody BusConstructionUserUpdateClockReq req) {
|
public R<Void> editClock(@Validated(EditGroup.class) @RequestBody SubConstructionUserUpdateClockReq req) {
|
||||||
return toAjax(busConstructionUserService.updateClock(req));
|
return toAjax(constructionUserService.updateClock(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量修改施工人员状态
|
* 批量修改施工人员状态
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:edit")
|
@SaCheckPermission("contractor:constructionUser:edit")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("/batch/status")
|
@PutMapping("/batch/status")
|
||||||
public R<Void> batchUpdateStatus(@Validated(EditGroup.class) @RequestBody BusConstructionUserBatchUpdateStatusReq req) {
|
public R<Void> batchUpdateStatus(@Validated(EditGroup.class) @RequestBody SubConstructionUserBatchUpdateStatusReq req) {
|
||||||
return toAjax(busConstructionUserService.batchUpdateStatus(req));
|
return toAjax(constructionUserService.batchUpdateStatus(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据项目id批量修改施工人员打卡状态
|
* 根据项目id批量修改施工人员打卡状态
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:edit")
|
@SaCheckPermission("contractor:constructionUser:edit")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("/batch/clock")
|
@PutMapping("/batch/clock")
|
||||||
public R<Void> batchUpdateClock(@Validated(EditGroup.class) @RequestBody BusConstructionUserBatchUpdateClockReq req) {
|
public R<Void> batchUpdateClock(@Validated(EditGroup.class) @RequestBody SubConstructionUserBatchUpdateClockReq req) {
|
||||||
return toAjax(busConstructionUserService.batchUpdateClockByProjectId(req));
|
return toAjax(constructionUserService.batchUpdateClockByProjectId(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 施工人员迁移
|
* 施工人员迁移
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:edit")
|
@SaCheckPermission("contractor:constructionUser:edit")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
@Log(title = "施工人员", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("/change/project")
|
@PutMapping("/change/project")
|
||||||
public R<Void> changeUserProject(@Validated(EditGroup.class) @RequestBody BusConstructionUserChangeProjectReq req) {
|
public R<Void> changeUserProject(@Validated(EditGroup.class) @RequestBody SubConstructionUserChangeProjectReq req) {
|
||||||
return toAjax(busConstructionUserService.changeUserProject(req));
|
return toAjax(constructionUserService.changeUserProject(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -183,11 +183,11 @@ public class BusConstructionUserController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUser:remove")
|
@SaCheckPermission("contractor:constructionUser:remove")
|
||||||
@Log(title = "施工人员", businessType = BusinessType.DELETE)
|
@Log(title = "施工人员", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
@PathVariable Long[] ids) {
|
@PathVariable Long[] ids) {
|
||||||
return toAjax(busConstructionUserService.deleteWithValidByIds(List.of(ids), true));
|
return toAjax(constructionUserService.deleteWithValidByIds(List.of(ids), true));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.controller;
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -10,11 +10,11 @@ import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
|||||||
import org.dromara.common.log.annotation.Log;
|
import org.dromara.common.log.annotation.Log;
|
||||||
import org.dromara.common.log.enums.BusinessType;
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileQueryReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileQueryReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileSaveReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileSaveReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileTemplateReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileTemplateReq;
|
||||||
import org.dromara.project.domain.vo.constructionuserfile.BusConstructionUserFileVo;
|
import org.dromara.contractor.domain.vo.constructionuserfile.SubConstructionUserFileVo;
|
||||||
import org.dromara.project.service.IBusConstructionUserFileService;
|
import org.dromara.contractor.service.ISubConstructionUserFileService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@ -31,50 +31,50 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/project/constructionUserFile")
|
@RequestMapping("/project/constructionUserFile")
|
||||||
public class BusConstructionUserFileController extends BaseController {
|
public class SubConstructionUserFileController extends BaseController {
|
||||||
|
|
||||||
private final IBusConstructionUserFileService busConstructionUserFileService;
|
private final ISubConstructionUserFileService constructionUserFileService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员文件存储列表
|
* 查询施工人员文件存储列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUserFile:list")
|
@SaCheckPermission("contractor:constructionUserFile:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public R<List<BusConstructionUserFileVo>> list(BusConstructionUserFileQueryReq req) {
|
public R<List<SubConstructionUserFileVo>> list(SubConstructionUserFileQueryReq req) {
|
||||||
return R.ok(busConstructionUserFileService.queryList(req));
|
return R.ok(constructionUserFileService.queryList(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出施工人员文件存储列表
|
* 导出施工人员文件存储列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUserFile:export")
|
@SaCheckPermission("contractor:constructionUserFile:export")
|
||||||
@Log(title = "施工人员文件存储", businessType = BusinessType.EXPORT)
|
@Log(title = "施工人员文件存储", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(BusConstructionUserFileQueryReq req, HttpServletResponse response) {
|
public void export(SubConstructionUserFileQueryReq req, HttpServletResponse response) {
|
||||||
List<BusConstructionUserFileVo> list = busConstructionUserFileService.queryList(req);
|
List<SubConstructionUserFileVo> list = constructionUserFileService.queryList(req);
|
||||||
ExcelUtil.exportExcel(list, "施工人员文件存储", BusConstructionUserFileVo.class, response);
|
ExcelUtil.exportExcel(list, "施工人员文件存储", SubConstructionUserFileVo.class, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下载施工人员文件存储模板
|
* 下载施工人员文件存储模板
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUserFile:export")
|
@SaCheckPermission("contractor:constructionUserFile:export")
|
||||||
@Log(title = "施工人员文件存储", businessType = BusinessType.EXPORT)
|
@Log(title = "施工人员文件存储", businessType = BusinessType.EXPORT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/exportFileTemplate")
|
@PostMapping("/exportFileTemplate")
|
||||||
public void exportFileTemplate(BusConstructionUserFileTemplateReq req, HttpServletResponse response) {
|
public void exportFileTemplate(SubConstructionUserFileTemplateReq req, HttpServletResponse response) {
|
||||||
busConstructionUserFileService.downloadFileTemplate(req, response);
|
constructionUserFileService.downloadFileTemplate(req, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传施工人员文件压缩包,批量导入存储施工人员文件
|
* 上传施工人员文件压缩包,批量导入存储施工人员文件
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUserFile:edit")
|
@SaCheckPermission("contractor:constructionUserFile:edit")
|
||||||
@Log(title = "施工人员文件存储", businessType = BusinessType.INSERT)
|
@Log(title = "施工人员文件存储", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/upload/zip")
|
@PostMapping("/upload/zip")
|
||||||
public R<Boolean> uploadFileZip(@RequestParam("file") MultipartFile file) {
|
public R<Boolean> uploadFileZip(@RequestParam("file") MultipartFile file) {
|
||||||
Boolean result = busConstructionUserFileService.batchUploadFileByZip(file);
|
Boolean result = constructionUserFileService.batchUploadFileByZip(file);
|
||||||
return R.ok(result);
|
return R.ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,21 +83,21 @@ public class BusConstructionUserFileController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUserFile:query")
|
@SaCheckPermission("contractor:constructionUserFile:query")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<BusConstructionUserFileVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SubConstructionUserFileVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
return R.ok(busConstructionUserFileService.queryById(id));
|
return R.ok(constructionUserFileService.queryById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存施工人员文件存储详情信息
|
* 保存施工人员文件存储详情信息
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:constructionUserFile:edit")
|
@SaCheckPermission("contractor:constructionUserFile:edit")
|
||||||
@Log(title = "施工人员文件存储", businessType = BusinessType.INSERT)
|
@Log(title = "施工人员文件存储", businessType = BusinessType.INSERT)
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
public R<Boolean> save(@RequestBody BusConstructionUserFileSaveReq req) {
|
public R<Boolean> save(@RequestBody SubConstructionUserFileSaveReq req) {
|
||||||
return R.ok(busConstructionUserFileService.saveFileList(req));
|
return R.ok(constructionUserFileService.saveFileList(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.controller;
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -15,11 +15,11 @@ import org.dromara.common.log.enums.BusinessType;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorCreateReq;
|
import org.dromara.contractor.domain.dto.contractor.SubContractorCreateReq;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorQueryReq;
|
import org.dromara.contractor.domain.dto.contractor.SubContractorQueryReq;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorUpdateReq;
|
import org.dromara.contractor.domain.dto.contractor.SubContractorUpdateReq;
|
||||||
import org.dromara.project.domain.vo.contractor.BusContractorVo;
|
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||||
import org.dromara.project.service.IBusContractorService;
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -35,28 +35,28 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/project/contractor")
|
@RequestMapping("/project/contractor")
|
||||||
public class BusContractorController extends BaseController {
|
public class SubContractorController extends BaseController {
|
||||||
|
|
||||||
private final IBusContractorService busContractorService;
|
private final ISubContractorService contractorService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包单位列表
|
* 查询分包单位列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractor:list")
|
@SaCheckPermission("contractor:contractor:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<BusContractorVo> list(BusContractorQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubContractorVo> list(SubContractorQueryReq req, PageQuery pageQuery) {
|
||||||
return busContractorService.queryPageList(req, pageQuery);
|
return contractorService.queryPageList(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出分包单位列表
|
* 导出分包单位列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractor:export")
|
@SaCheckPermission("contractor:contractor:export")
|
||||||
@Log(title = "分包单位", businessType = BusinessType.EXPORT)
|
@Log(title = "分包单位", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(BusContractorQueryReq req, HttpServletResponse response) {
|
public void export(SubContractorQueryReq req, HttpServletResponse response) {
|
||||||
List<BusContractorVo> list = busContractorService.queryList(req);
|
List<SubContractorVo> list = contractorService.queryList(req);
|
||||||
ExcelUtil.exportExcel(list, "分包单位", BusContractorVo.class, response);
|
ExcelUtil.exportExcel(list, "分包单位", SubContractorVo.class, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -64,33 +64,33 @@ public class BusContractorController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractor:query")
|
@SaCheckPermission("contractor:contractor:query")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<BusContractorVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SubContractorVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
return R.ok(busContractorService.queryById(id));
|
return R.ok(contractorService.queryById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增分包单位
|
* 新增分包单位
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractor:add")
|
@SaCheckPermission("contractor:contractor:add")
|
||||||
@Log(title = "分包单位", businessType = BusinessType.INSERT)
|
@Log(title = "分包单位", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody BusContractorCreateReq req) {
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody SubContractorCreateReq req) {
|
||||||
return R.ok(busContractorService.insertByBo(req));
|
return R.ok(contractorService.insertByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改分包单位
|
* 修改分包单位
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractor:edit")
|
@SaCheckPermission("contractor:contractor:edit")
|
||||||
@Log(title = "分包单位", businessType = BusinessType.UPDATE)
|
@Log(title = "分包单位", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusContractorUpdateReq req) {
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubContractorUpdateReq req) {
|
||||||
return toAjax(busContractorService.updateByBo(req));
|
return toAjax(contractorService.updateByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -98,11 +98,11 @@ public class BusContractorController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractor:remove")
|
@SaCheckPermission("contractor:contractor:remove")
|
||||||
@Log(title = "分包单位", businessType = BusinessType.DELETE)
|
@Log(title = "分包单位", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
@PathVariable Long[] ids) {
|
@PathVariable Long[] ids) {
|
||||||
return toAjax(busContractorService.deleteWithValidByIds(List.of(ids), true));
|
return toAjax(contractorService.deleteWithValidByIds(List.of(ids), true));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,108 @@
|
|||||||
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterial.SubContractorMaterialVo;
|
||||||
|
import org.dromara.contractor.service.ISubContractorMaterialService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/contractor/contractorMaterial")
|
||||||
|
public class SubContractorMaterialController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISubContractorMaterialService contractorMaterialService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询分包方物料列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterial:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SubContractorMaterialVo> list(SubContractorMaterialQueryReq req, PageQuery pageQuery) {
|
||||||
|
return contractorMaterialService.queryPageList(req, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出分包方物料列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterial:export")
|
||||||
|
@Log(title = "分包方物料", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(SubContractorMaterialQueryReq req, HttpServletResponse response) {
|
||||||
|
List<SubContractorMaterialVo> list = contractorMaterialService.queryList(req);
|
||||||
|
ExcelUtil.exportExcel(list, "分包方物料", SubContractorMaterialVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterial:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<SubContractorMaterialVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(contractorMaterialService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增分包方物料
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterial:add")
|
||||||
|
@Log(title = "分包方物料", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody SubContractorMaterialCreateReq req) {
|
||||||
|
return R.ok(contractorMaterialService.insertByBo(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改分包方物料
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterial:edit")
|
||||||
|
@Log(title = "分包方物料", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubContractorMaterialUpdateReq req) {
|
||||||
|
return toAjax(contractorMaterialService.updateByBo(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除分包方物料
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterial:remove")
|
||||||
|
@Log(title = "分包方物料", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(contractorMaterialService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,108 @@
|
|||||||
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterialrecord.SubContractorMaterialRecordVo;
|
||||||
|
import org.dromara.contractor.service.ISubContractorMaterialRecordService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料记录
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/contractor/contractorMaterialRecord")
|
||||||
|
public class SubContractorMaterialRecordController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISubContractorMaterialRecordService subContractorMaterialRecordService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询分包方物料记录列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterialRecord:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SubContractorMaterialRecordVo> list(SubContractorMaterialRecordQueryReq req, PageQuery pageQuery) {
|
||||||
|
return subContractorMaterialRecordService.queryPageList(req, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出分包方物料记录列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterialRecord:export")
|
||||||
|
@Log(title = "分包方物料记录", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(SubContractorMaterialRecordQueryReq req, HttpServletResponse response) {
|
||||||
|
List<SubContractorMaterialRecordVo> list = subContractorMaterialRecordService.queryList(req);
|
||||||
|
ExcelUtil.exportExcel(list, "分包方物料记录", SubContractorMaterialRecordVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterialRecord:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<SubContractorMaterialRecordVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(subContractorMaterialRecordService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增分包方物料记录
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterialRecord:add")
|
||||||
|
@Log(title = "分包方物料记录", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody SubContractorMaterialRecordCreateReq req) {
|
||||||
|
return R.ok(subContractorMaterialRecordService.insertByBo(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改分包方物料记录
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterialRecord:edit")
|
||||||
|
@Log(title = "分包方物料记录", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubContractorMaterialRecordUpdateReq req) {
|
||||||
|
return toAjax(subContractorMaterialRecordService.updateByBo(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除分包方物料记录
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("contractor:contractorMaterialRecord:remove")
|
||||||
|
@Log(title = "分包方物料记录", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(subContractorMaterialRecordService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.controller;
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -15,11 +15,11 @@ import org.dromara.common.log.enums.BusinessType;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolCreateReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolCreateReq;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolQueryReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolQueryReq;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolUpdateReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolUpdateReq;
|
||||||
import org.dromara.project.domain.vo.contractortool.BusContractorToolVo;
|
import org.dromara.contractor.domain.vo.contractortool.SubContractorToolVo;
|
||||||
import org.dromara.project.service.IBusContractorToolService;
|
import org.dromara.contractor.service.ISubContractorToolService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -34,29 +34,29 @@ import java.util.List;
|
|||||||
@Validated
|
@Validated
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/project/contractorTool")
|
@RequestMapping("/project/contractorTool")
|
||||||
public class BusContractorToolController extends BaseController {
|
public class SubContractorToolController extends BaseController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorToolService busContractorToolService;
|
private ISubContractorToolService busContractorToolService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包方工器具列表
|
* 查询分包方工器具列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractorTool:list")
|
@SaCheckPermission("contractor:contractorTool:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<BusContractorToolVo> list(BusContractorToolQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubContractorToolVo> list(SubContractorToolQueryReq req, PageQuery pageQuery) {
|
||||||
return busContractorToolService.queryPageList(req, pageQuery);
|
return busContractorToolService.queryPageList(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出分包方工器具列表
|
* 导出分包方工器具列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractorTool:export")
|
@SaCheckPermission("contractor:contractorTool:export")
|
||||||
@Log(title = "分包方工器具", businessType = BusinessType.EXPORT)
|
@Log(title = "分包方工器具", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(BusContractorToolQueryReq req, HttpServletResponse response) {
|
public void export(SubContractorToolQueryReq req, HttpServletResponse response) {
|
||||||
List<BusContractorToolVo> list = busContractorToolService.queryList(req);
|
List<SubContractorToolVo> list = busContractorToolService.queryList(req);
|
||||||
ExcelUtil.exportExcel(list, "分包方工器具", BusContractorToolVo.class, response);
|
ExcelUtil.exportExcel(list, "分包方工器具", SubContractorToolVo.class, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -64,9 +64,9 @@ public class BusContractorToolController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractorTool:query")
|
@SaCheckPermission("contractor:contractorTool:query")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<BusContractorToolVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SubContractorToolVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
return R.ok(busContractorToolService.queryById(id));
|
return R.ok(busContractorToolService.queryById(id));
|
||||||
}
|
}
|
||||||
@ -74,22 +74,22 @@ public class BusContractorToolController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 新增分包方工器具
|
* 新增分包方工器具
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractorTool:add")
|
@SaCheckPermission("contractor:contractorTool:add")
|
||||||
@Log(title = "分包方工器具", businessType = BusinessType.INSERT)
|
@Log(title = "分包方工器具", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody BusContractorToolCreateReq req) {
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody SubContractorToolCreateReq req) {
|
||||||
return R.ok(busContractorToolService.insertByBo(req));
|
return R.ok(busContractorToolService.insertByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改分包方工器具
|
* 修改分包方工器具
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractorTool:edit")
|
@SaCheckPermission("contractor:contractorTool:edit")
|
||||||
@Log(title = "分包方工器具", businessType = BusinessType.UPDATE)
|
@Log(title = "分包方工器具", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusContractorToolUpdateReq req) {
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubContractorToolUpdateReq req) {
|
||||||
return toAjax(busContractorToolService.updateByBo(req));
|
return toAjax(busContractorToolService.updateByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ public class BusContractorToolController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:contractorTool:remove")
|
@SaCheckPermission("contractor:contractorTool:remove")
|
||||||
@Log(title = "分包方工器具", businessType = BusinessType.DELETE)
|
@Log(title = "分包方工器具", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.controller;
|
package org.dromara.contractor.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -13,11 +13,11 @@ import org.dromara.common.log.enums.BusinessType;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractCreateReq;
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractCreateReq;
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractQueryReq;
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractQueryReq;
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractUpdateReq;
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractUpdateReq;
|
||||||
import org.dromara.project.domain.vo.subcontract.BusSubcontractVo;
|
import org.dromara.contractor.domain.vo.subcontract.SubSubcontractVo;
|
||||||
import org.dromara.project.service.IBusSubcontractService;
|
import org.dromara.contractor.service.ISubSubcontractService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -32,17 +32,17 @@ import java.util.List;
|
|||||||
@Validated
|
@Validated
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/project/subcontract")
|
@RequestMapping("/project/subcontract")
|
||||||
public class BusSubcontractController extends BaseController {
|
public class SubSubcontractController extends BaseController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusSubcontractService subcontractService;
|
private ISubSubcontractService subcontractService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包合同列表
|
* 查询分包合同列表
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:subcontract:list")
|
@SaCheckPermission("contractor:subcontract:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<BusSubcontractVo> list(BusSubcontractQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubSubcontractVo> list(SubSubcontractQueryReq req, PageQuery pageQuery) {
|
||||||
return subcontractService.queryPageList(req, pageQuery);
|
return subcontractService.queryPageList(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,9 +51,9 @@ public class BusSubcontractController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param id 主键
|
* @param id 主键
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:subcontract:query")
|
@SaCheckPermission("contractor:subcontract:query")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public R<BusSubcontractVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SubSubcontractVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
return R.ok(subcontractService.queryById(id));
|
return R.ok(subcontractService.queryById(id));
|
||||||
}
|
}
|
||||||
@ -61,22 +61,22 @@ public class BusSubcontractController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 新增分包合同
|
* 新增分包合同
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:subcontract:add")
|
@SaCheckPermission("contractor:subcontract:add")
|
||||||
@Log(title = "分包合同", businessType = BusinessType.INSERT)
|
@Log(title = "分包合同", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public R<Long> add(@Validated(AddGroup.class) @RequestBody BusSubcontractCreateReq req) {
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody SubSubcontractCreateReq req) {
|
||||||
return R.ok(subcontractService.insertByBo(req));
|
return R.ok(subcontractService.insertByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改分包合同
|
* 修改分包合同
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:subcontract:edit")
|
@SaCheckPermission("contractor:subcontract:edit")
|
||||||
@Log(title = "分包合同", businessType = BusinessType.UPDATE)
|
@Log(title = "分包合同", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@PutMapping()
|
||||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusSubcontractUpdateReq req) {
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubSubcontractUpdateReq req) {
|
||||||
return toAjax(subcontractService.updateByBo(req));
|
return toAjax(subcontractService.updateByBo(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ public class BusSubcontractController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param ids 主键串
|
* @param ids 主键串
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:subcontract:remove")
|
@SaCheckPermission("contractor:subcontract:remove")
|
||||||
@Log(title = "分包合同", businessType = BusinessType.DELETE)
|
@Log(title = "分包合同", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain;
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
@ -11,15 +11,15 @@ import java.io.Serial;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 施工人员对象 bus_construction_user
|
* 施工人员对象 sub_construction_user
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName("bus_construction_user")
|
@TableName("sub_construction_user")
|
||||||
public class BusConstructionUser extends BaseEntity {
|
public class SubConstructionUser extends BaseEntity {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain;
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
@ -9,14 +9,14 @@ import java.io.Serializable;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 施工人员文件存储对象 bus_construction_user_file
|
* 施工人员文件存储对象 sub_construction_user_file
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-04-01
|
* @date 2025-04-01
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("bus_construction_user_file")
|
@TableName("sub_construction_user_file")
|
||||||
public class BusConstructionUserFile implements Serializable {
|
public class SubConstructionUserFile implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain;
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
@ -11,15 +11,15 @@ import java.io.Serial;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包单位对象 bus_contractor
|
* 分包单位对象 sub_contractor
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName("bus_contractor")
|
@TableName("sub_contractor")
|
||||||
public class BusContractor extends BaseEntity {
|
public class SubContractor extends BaseEntity {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -0,0 +1,90 @@
|
|||||||
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料对象 sub_contractor_material
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("sub_contractor_material")
|
||||||
|
public class SubContractorMaterial extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类型
|
||||||
|
*/
|
||||||
|
private String materialType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料型号
|
||||||
|
*/
|
||||||
|
private String materialModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料数量
|
||||||
|
*/
|
||||||
|
private BigDecimal materialNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料单位
|
||||||
|
*/
|
||||||
|
private String materialUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除时间
|
||||||
|
*/
|
||||||
|
private Date deletedAt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否删除(0正常 1删除)
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
private Long isDelete;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料记录对象 sub_contractor_material_record
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("sub_contractor_material_record")
|
||||||
|
public class SubContractorMaterialRecord extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long contractorMaterialId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录类型(1到货计划 2使用情况)
|
||||||
|
*/
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录时间
|
||||||
|
*/
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余数量(到货 使用)
|
||||||
|
*/
|
||||||
|
private BigDecimal remainingNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用位置或构件部位(使用情况)
|
||||||
|
*/
|
||||||
|
private String usedPosition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关附件
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain;
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
@ -8,18 +8,19 @@ import lombok.EqualsAndHashCode;
|
|||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包方工器具对象 bus_contractor_tool
|
* 分包方工器具对象 sub_contractor_tool
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-06-26
|
* @date 2025-06-26
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName("bus_contractor_tool")
|
@TableName("sub_contractor_tool")
|
||||||
public class BusContractorTool extends BaseEntity {
|
public class SubContractorTool extends BaseEntity {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@ -58,7 +59,7 @@ public class BusContractorTool extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 工具数量
|
* 工具数量
|
||||||
*/
|
*/
|
||||||
private String toolNumber;
|
private BigDecimal toolNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件
|
* 文件
|
@ -2,11 +2,14 @@ package org.dromara.contractor.domain;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.json.handler.BigDecimalToIntegerSerializer;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,9 +53,16 @@ public class SubContractorToolRecord extends BaseEntity {
|
|||||||
private String recordType;
|
private String recordType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场工器具数量
|
* 记录工器具数量
|
||||||
*/
|
*/
|
||||||
private String toolNumber;
|
@JsonSerialize(using = BigDecimalToIntegerSerializer.class)
|
||||||
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余数量
|
||||||
|
*/
|
||||||
|
@JsonSerialize(using = BigDecimalToIntegerSerializer.class)
|
||||||
|
private BigDecimal remainingNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测编号
|
* 检测编号
|
||||||
@ -80,8 +90,8 @@ public class SubContractorToolRecord extends BaseEntity {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场时间
|
* 记录时间
|
||||||
*/
|
*/
|
||||||
private Date entryTime;
|
private Date recordTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain;
|
package org.dromara.contractor.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
@ -10,14 +10,14 @@ import java.math.BigDecimal;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包合同对象 bus_subcontract
|
* 分包合同对象 sub_subcontract
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-06-25
|
* @date 2025-06-25
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("bus_subcontract")
|
@TableName("sub_subcontract")
|
||||||
public class BusSubcontract implements Serializable {
|
public class SubSubcontract implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/7 15:04
|
* @date 2025/4/7 15:04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserAttendanceMonthReq implements Serializable {
|
public class SubConstructionUserAttendanceMonthReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -1496942176392426636L;
|
private static final long serialVersionUID = -1496942176392426636L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/7 10:52
|
* @date 2025/4/7 10:52
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserAttendanceQueryReq implements Serializable {
|
public class SubConstructionUserAttendanceQueryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -6634291825924626633L;
|
private static final long serialVersionUID = -6634291825924626633L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -13,7 +13,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/2 9:14
|
* @date 2025/4/2 9:14
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserBatchUpdateClockReq implements Serializable {
|
public class SubConstructionUserBatchUpdateClockReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -5803749609177642435L;
|
private static final long serialVersionUID = -5803749609177642435L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -14,7 +14,7 @@ import java.util.List;
|
|||||||
* @date 2025/4/1 17:11
|
* @date 2025/4/1 17:11
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserBatchUpdateStatusReq implements Serializable {
|
public class SubConstructionUserBatchUpdateStatusReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -3756685899069233313L;
|
private static final long serialVersionUID = -3756685899069233313L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -13,7 +13,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/3/31 14:50
|
* @date 2025/3/31 14:50
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserChangeProjectReq implements Serializable {
|
public class SubConstructionUserChangeProjectReq implements Serializable {
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -2638471692809830501L;
|
private static final long serialVersionUID = -2638471692809830501L;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/3/5 14:05
|
* @date 2025/3/5 14:05
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserCreateReq implements Serializable {
|
public class SubConstructionUserCreateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -7603153089205421154L;
|
private static final long serialVersionUID = -7603153089205421154L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/28 9:40
|
* @date 2025/4/28 9:40
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserGisReq implements Serializable {
|
public class SubConstructionUserGisReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 2487357135566518535L;
|
private static final long serialVersionUID = 2487357135566518535L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/3/5 14:31
|
* @date 2025/3/5 14:31
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserQueryReq implements Serializable {
|
public class SubConstructionUserQueryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 3252651952758479341L;
|
private static final long serialVersionUID = 3252651952758479341L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -13,7 +13,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/2 9:14
|
* @date 2025/4/2 9:14
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserUpdateClockReq implements Serializable {
|
public class SubConstructionUserUpdateClockReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -5803749609177642435L;
|
private static final long serialVersionUID = -5803749609177642435L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/3/5 15:04
|
* @date 2025/3/5 15:04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserUpdateReq implements Serializable {
|
public class SubConstructionUserUpdateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -8022860866890925958L;
|
private static final long serialVersionUID = -8022860866890925958L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuser;
|
package org.dromara.contractor.domain.dto.constructionuser;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/2 11:35
|
* @date 2025/4/2 11:35
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserUpdateSalaryReq implements Serializable {
|
public class SubConstructionUserUpdateSalaryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -1300674086812422523L;
|
private static final long serialVersionUID = -1300674086812422523L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuserfile;
|
package org.dromara.contractor.domain.dto.constructionuserfile;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/1 10:06
|
* @date 2025/4/1 10:06
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserFileQueryReq implements Serializable {
|
public class SubConstructionUserFileQueryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 552027602186820020L;
|
private static final long serialVersionUID = 552027602186820020L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuserfile;
|
package org.dromara.contractor.domain.dto.constructionuserfile;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
|
|||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class BusConstructionUserFileReq {
|
public class SubConstructionUserFileReq {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件类型
|
* 文件类型
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuserfile;
|
package org.dromara.contractor.domain.dto.constructionuserfile;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ import java.util.List;
|
|||||||
* @date 2025/4/1 10:01
|
* @date 2025/4/1 10:01
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserFileSaveReq implements Serializable {
|
public class SubConstructionUserFileSaveReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 4319620202781413796L;
|
private static final long serialVersionUID = 4319620202781413796L;
|
||||||
@ -24,6 +24,6 @@ public class BusConstructionUserFileSaveReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 文件列表
|
* 文件列表
|
||||||
*/
|
*/
|
||||||
private List<BusConstructionUserFileReq> fileList;
|
private List<SubConstructionUserFileReq> fileList;
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.constructionuserfile;
|
package org.dromara.contractor.domain.dto.constructionuserfile;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -12,7 +12,7 @@ import java.util.List;
|
|||||||
* @date 2025/4/9 9:25
|
* @date 2025/4/9 9:25
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserFileTemplateReq implements Serializable {
|
public class SubConstructionUserFileTemplateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -6895109153171403950L;
|
private static final long serialVersionUID = -6895109153171403950L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.contractor;
|
package org.dromara.contractor.domain.dto.contractor;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ import java.util.Map;
|
|||||||
* @date 2025/3/5 14:05
|
* @date 2025/3/5 14:05
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusContractorCreateReq implements Serializable {
|
public class SubContractorCreateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -7603153089205421154L;
|
private static final long serialVersionUID = -7603153089205421154L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.contractor;
|
package org.dromara.contractor.domain.dto.contractor;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/3/5 14:31
|
* @date 2025/3/5 14:31
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusContractorQueryReq implements Serializable {
|
public class SubContractorQueryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 3252651952758479341L;
|
private static final long serialVersionUID = 3252651952758479341L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.contractor;
|
package org.dromara.contractor.domain.dto.contractor;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ import java.util.Map;
|
|||||||
* @date 2025/3/5 15:04
|
* @date 2025/3/5 15:04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusContractorUpdateReq implements Serializable {
|
public class SubContractorUpdateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -8022860866890925958L;
|
private static final long serialVersionUID = -8022860866890925958L;
|
@ -0,0 +1,58 @@
|
|||||||
|
package org.dromara.contractor.domain.dto.contractormaterial;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 14:18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubContractorMaterialCreateReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -5984785792671407395L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类型
|
||||||
|
*/
|
||||||
|
private String materialType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料型号
|
||||||
|
*/
|
||||||
|
private String materialModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料单位
|
||||||
|
*/
|
||||||
|
private String materialUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package org.dromara.contractor.domain.dto.contractormaterial;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 14:20
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubContractorMaterialQueryReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 640474123189874263L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类型
|
||||||
|
*/
|
||||||
|
private String materialType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料型号
|
||||||
|
*/
|
||||||
|
private String materialModel;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
package org.dromara.contractor.domain.dto.contractormaterial;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 14:20
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubContractorMaterialUpdateReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -4488270790673814590L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类型
|
||||||
|
*/
|
||||||
|
private String materialType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料型号
|
||||||
|
*/
|
||||||
|
private String materialModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料单位
|
||||||
|
*/
|
||||||
|
private String materialUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
package org.dromara.contractor.domain.dto.contractormaterialrecord;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 14:35
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubContractorMaterialRecordCreateReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -2325294573057427849L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long contractorMaterialId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录类型(1到货计划 2使用情况)
|
||||||
|
*/
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用位置或构件部位(使用情况)
|
||||||
|
*/
|
||||||
|
private String usedPosition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关附件
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package org.dromara.contractor.domain.dto.contractormaterialrecord;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 14:36
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubContractorMaterialRecordQueryReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -5817912360176038347L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long contractorMaterialId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录类型(1到货计划 2使用情况)
|
||||||
|
*/
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用位置或构件部位(使用情况)
|
||||||
|
*/
|
||||||
|
private String usedPosition;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package org.dromara.contractor.domain.dto.contractormaterialrecord;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 14:36
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubContractorMaterialRecordUpdateReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -6087029523445301396L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
private Long contractorMaterialId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录类型(1到货计划 2使用情况)
|
||||||
|
*/
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用位置或构件部位(使用情况)
|
||||||
|
*/
|
||||||
|
private String usedPosition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关附件
|
||||||
|
*/
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
@ -1,16 +1,17 @@
|
|||||||
package org.dromara.project.domain.dto.contractortool;
|
package org.dromara.contractor.domain.dto.contractortool;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025/6/26 15:26
|
* @date 2025/6/26 15:26
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusContractorToolCreateReq implements Serializable {
|
public class SubContractorToolCreateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -148571725751082526L;
|
private static final long serialVersionUID = -148571725751082526L;
|
||||||
@ -43,7 +44,7 @@ public class BusContractorToolCreateReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 工具数量
|
* 工具数量
|
||||||
*/
|
*/
|
||||||
private String toolNumber;
|
private BigDecimal toolNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件
|
* 文件
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.contractortool;
|
package org.dromara.contractor.domain.dto.contractortool;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/6/26 15:26
|
* @date 2025/6/26 15:26
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusContractorToolQueryReq implements Serializable {
|
public class SubContractorToolQueryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -654101391027815665L;
|
private static final long serialVersionUID = -654101391027815665L;
|
@ -1,16 +1,17 @@
|
|||||||
package org.dromara.project.domain.dto.contractortool;
|
package org.dromara.contractor.domain.dto.contractortool;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025/6/26 15:26
|
* @date 2025/6/26 15:26
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusContractorToolUpdateReq implements Serializable {
|
public class SubContractorToolUpdateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 6147452720586538283L;
|
private static final long serialVersionUID = 6147452720586538283L;
|
||||||
@ -48,7 +49,7 @@ public class BusContractorToolUpdateReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 工具数量
|
* 工具数量
|
||||||
*/
|
*/
|
||||||
private String toolNumber;
|
private BigDecimal toolNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件
|
* 文件
|
@ -1,9 +1,11 @@
|
|||||||
package org.dromara.contractor.domain.dto.contractortoolentry;
|
package org.dromara.contractor.domain.dto.contractortoolentry;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,9 +29,9 @@ public class SubContractorToolRecordCreateReq implements Serializable {
|
|||||||
private String recordType;
|
private String recordType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场工器具数量
|
* 记录工器具数量
|
||||||
*/
|
*/
|
||||||
private String toolNumber;
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测编号
|
* 检测编号
|
||||||
@ -44,6 +46,7 @@ public class SubContractorToolRecordCreateReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 检测时间
|
* 检测时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
private Date checkTime;
|
private Date checkTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,7 +60,8 @@ public class SubContractorToolRecordCreateReq implements Serializable {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场时间
|
* 记录时间
|
||||||
*/
|
*/
|
||||||
private Date entryTime;
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
|
private Date recordTime;
|
||||||
}
|
}
|
||||||
|
@ -40,4 +40,9 @@ public class SubContractorToolRecordQueryReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String checkDept;
|
private String checkDept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录类型
|
||||||
|
*/
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package org.dromara.contractor.domain.dto.contractortoolentry;
|
package org.dromara.contractor.domain.dto.contractortoolentry;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,9 +24,9 @@ public class SubContractorToolRecordUpdateReq implements Serializable {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场工器具数量
|
* 记录工器具数量
|
||||||
*/
|
*/
|
||||||
private String toolNumber;
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测编号
|
* 检测编号
|
||||||
@ -39,6 +41,7 @@ public class SubContractorToolRecordUpdateReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 检测时间
|
* 检测时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
private Date checkTime;
|
private Date checkTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -52,8 +55,9 @@ public class SubContractorToolRecordUpdateReq implements Serializable {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场时间
|
* 记录时间
|
||||||
*/
|
*/
|
||||||
private Date entryTime;
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.subcontract;
|
package org.dromara.contractor.domain.dto.subcontract;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ import java.util.Date;
|
|||||||
* @date 2025/6/25 16:36
|
* @date 2025/6/25 16:36
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusSubcontractCreateReq implements Serializable {
|
public class SubSubcontractCreateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -3386090526440868496L;
|
private static final long serialVersionUID = -3386090526440868496L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.subcontract;
|
package org.dromara.contractor.domain.dto.subcontract;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/6/25 16:37
|
* @date 2025/6/25 16:37
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusSubcontractQueryReq implements Serializable {
|
public class SubSubcontractQueryReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 3731492397283570840L;
|
private static final long serialVersionUID = 3731492397283570840L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.dto.subcontract;
|
package org.dromara.contractor.domain.dto.subcontract;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ import java.util.Date;
|
|||||||
* @date 2025/6/25 16:37
|
* @date 2025/6/25 16:37
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusSubcontractUpdateReq implements Serializable {
|
public class SubSubcontractUpdateReq implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -5617446079713109912L;
|
private static final long serialVersionUID = -5617446079713109912L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.enums;
|
package org.dromara.contractor.domain.enums;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@ -7,7 +7,7 @@ import lombok.Getter;
|
|||||||
* @date 2025/4/3 17:47
|
* @date 2025/4/3 17:47
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public enum BusConstructionUserFileStatusEnum {
|
public enum SubConstructionUserFileStatusEnum {
|
||||||
|
|
||||||
NOUPLOAD("未上传", "1"),
|
NOUPLOAD("未上传", "1"),
|
||||||
PARTUPLOAD("部分上传", "2"),
|
PARTUPLOAD("部分上传", "2"),
|
||||||
@ -17,7 +17,7 @@ public enum BusConstructionUserFileStatusEnum {
|
|||||||
|
|
||||||
private final String value;
|
private final String value;
|
||||||
|
|
||||||
BusConstructionUserFileStatusEnum(String text, String value) {
|
SubConstructionUserFileStatusEnum(String text, String value) {
|
||||||
this.text = text;
|
this.text = text;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package org.dromara.contractor.domain.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 10:30
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
public enum SubContractorRecordEnum {
|
||||||
|
|
||||||
|
PUT("进场/入库", "1"),
|
||||||
|
OUT("出场/出库", "2");
|
||||||
|
|
||||||
|
private final String text;
|
||||||
|
|
||||||
|
private final String value;
|
||||||
|
|
||||||
|
SubContractorRecordEnum(String text, String value) {
|
||||||
|
this.text = text;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.exportvo;
|
package org.dromara.contractor.domain.exportvo;
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@ -6,7 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -18,7 +18,7 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
@AutoMapper(target = BusConstructionUser.class)
|
@AutoMapper(target = SubConstructionUser.class)
|
||||||
public class BusConstructionUserExportVo implements Serializable {
|
public class BusConstructionUserExportVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.constructionuser;
|
package org.dromara.contractor.domain.vo.constructionuser;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -16,7 +16,7 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class BusConstructionUserAttendanceByDay {
|
public class SubConstructionUserAttendanceByDay {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上班打卡时间
|
* 上班打卡时间
|
||||||
@ -47,11 +47,11 @@ public class BusConstructionUserAttendanceByDay {
|
|||||||
*/
|
*/
|
||||||
private Date downClockTime;
|
private Date downClockTime;
|
||||||
|
|
||||||
public static BusConstructionUserAttendanceByDay build(List<BusAttendance> attendanceList) {
|
public static SubConstructionUserAttendanceByDay build(List<BusAttendance> attendanceList) {
|
||||||
if (attendanceList == null) {
|
if (attendanceList == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
BusConstructionUserAttendanceByDay constructionUserAttendanceByDay = new BusConstructionUserAttendanceByDay();
|
SubConstructionUserAttendanceByDay constructionUserAttendanceByDay = new SubConstructionUserAttendanceByDay();
|
||||||
for (BusAttendance attendance : attendanceList) {
|
for (BusAttendance attendance : attendanceList) {
|
||||||
if (attendance.getCommuter().equals(BusAttendanceCommuterEnum.CLOCKIN.getValue())) {
|
if (attendance.getCommuter().equals(BusAttendanceCommuterEnum.CLOCKIN.getValue())) {
|
||||||
constructionUserAttendanceByDay.setUpClockTime(attendance.getClockTime());
|
constructionUserAttendanceByDay.setUpClockTime(attendance.getClockTime());
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.constructionuser;
|
package org.dromara.contractor.domain.vo.constructionuser;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -12,7 +12,7 @@ import java.util.Date;
|
|||||||
* @date 2025/4/7 15:06
|
* @date 2025/4/7 15:06
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserAttendanceMonthVo implements Serializable {
|
public class SubConstructionUserAttendanceMonthVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -413447291128760025L;
|
private static final long serialVersionUID = -413447291128760025L;
|
||||||
@ -38,6 +38,6 @@ public class BusConstructionUserAttendanceMonthVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 当天打卡记录
|
* 当天打卡记录
|
||||||
*/
|
*/
|
||||||
private BusConstructionUserAttendanceByDay clockList;
|
private SubConstructionUserAttendanceByDay clockList;
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.constructionuser;
|
package org.dromara.contractor.domain.vo.constructionuser;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/7 10:16
|
* @date 2025/4/7 10:16
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserAttendanceTotalVo implements Serializable {
|
public class SubConstructionUserAttendanceTotalVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1335094839733429171L;
|
private static final long serialVersionUID = 1335094839733429171L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.constructionuser;
|
package org.dromara.contractor.domain.vo.constructionuser;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import java.io.Serializable;
|
|||||||
* @date 2025/4/28 9:33
|
* @date 2025/4/28 9:33
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusConstructionUserGisVo implements Serializable {
|
public class SubConstructionUserGisVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = -3496633845665259321L;
|
private static final long serialVersionUID = -3496633845665259321L;
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.constructionuser;
|
package org.dromara.contractor.domain.vo.constructionuser;
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@ -6,8 +6,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.project.domain.vo.contractor.BusContractorVo;
|
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -22,8 +22,8 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
@AutoMapper(target = BusConstructionUser.class)
|
@AutoMapper(target = SubConstructionUser.class)
|
||||||
public class BusConstructionUserVo implements Serializable {
|
public class SubConstructionUserVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@ -67,7 +67,7 @@ public class BusConstructionUserVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 分包公司
|
* 分包公司
|
||||||
*/
|
*/
|
||||||
private BusContractorVo contractorVo;
|
private SubContractorVo contractorVo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班组id
|
* 班组id
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.constructionuserfile;
|
package org.dromara.contractor.domain.vo.constructionuserfile;
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@ -6,7 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import org.dromara.project.domain.BusConstructionUserFile;
|
import org.dromara.contractor.domain.SubConstructionUserFile;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -20,8 +20,8 @@ import java.io.Serializable;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
@AutoMapper(target = BusConstructionUserFile.class)
|
@AutoMapper(target = SubConstructionUserFile.class)
|
||||||
public class BusConstructionUserFileVo implements Serializable {
|
public class SubConstructionUserFileVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -1,10 +1,10 @@
|
|||||||
package org.dromara.project.domain.vo.contractor;
|
package org.dromara.contractor.domain.vo.contractor;
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.project.domain.BusContractor;
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -13,15 +13,15 @@ import java.util.Map;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包单位视图对象 bus_contractor
|
* 分包单位视图对象 sub_contractor
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
@AutoMapper(target = BusContractor.class)
|
@AutoMapper(target = SubContractor.class)
|
||||||
public class BusContractorVo implements Serializable {
|
public class SubContractorVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -0,0 +1,97 @@
|
|||||||
|
package org.dromara.contractor.domain.vo.contractormaterial;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterial;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料视图对象 sub_contractor_material
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = SubContractorMaterial.class)
|
||||||
|
public class SubContractorMaterialVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目id")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "分包方id")
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方名称
|
||||||
|
*/
|
||||||
|
private String contractorName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料名称")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料类型
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料类型", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(dictType = "contractor_material_type")
|
||||||
|
private String materialType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料型号
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料型号")
|
||||||
|
private String materialModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料数量
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料数量")
|
||||||
|
private BigDecimal materialNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料单位")
|
||||||
|
private String materialUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "文件")
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
package org.dromara.contractor.domain.vo.contractormaterialrecord;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterialRecord;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料记录视图对象 sub_contractor_material_record
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = SubContractorMaterialRecord.class)
|
||||||
|
public class SubContractorMaterialRecordVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目id")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "分包方id")
|
||||||
|
private Long contractorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方名称
|
||||||
|
*/
|
||||||
|
private String contractorName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "物料id")
|
||||||
|
private Long contractorMaterialId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
private String contractorMaterialName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录类型(1到货计划 2使用情况)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "记录类型(1到货计划 2使用情况)", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(dictType = "contractor_material_record_type")
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "记录时间")
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "数量")
|
||||||
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余数量(到货 使用)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "剩余数量(到货 使用)")
|
||||||
|
private BigDecimal remainingNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用位置或构件部位(使用情况)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "使用位置或构件部位(使用情况)")
|
||||||
|
private String usedPosition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关附件
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "相关附件")
|
||||||
|
private String file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.domain.vo.contractortool;
|
package org.dromara.contractor.domain.vo.contractortool;
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@ -6,23 +6,24 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import org.dromara.project.domain.BusContractorTool;
|
import org.dromara.contractor.domain.SubContractorTool;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包方工器具视图对象 bus_contractor_tool
|
* 分包方工器具视图对象 sub_contractor_tool
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-06-26
|
* @date 2025-06-26
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
@AutoMapper(target = BusContractorTool.class)
|
@AutoMapper(target = SubContractorTool.class)
|
||||||
public class BusContractorToolVo implements Serializable {
|
public class SubContractorToolVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@ -73,7 +74,7 @@ public class BusContractorToolVo implements Serializable {
|
|||||||
* 工具数量
|
* 工具数量
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "工具数量")
|
@ExcelProperty(value = "工具数量")
|
||||||
private String toolNumber;
|
private BigDecimal toolNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
@ -2,12 +2,14 @@ package org.dromara.contractor.domain.vo.contractortoolentry;
|
|||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.contractor.domain.SubContractorToolRecord;
|
import org.dromara.contractor.domain.SubContractorToolRecord;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
@ -66,10 +68,16 @@ public class SubContractorToolRecordVo implements Serializable {
|
|||||||
private String recordType;
|
private String recordType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场工器具数量
|
* 记录工器具数量
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "进场工器具数量")
|
@ExcelProperty(value = "记录工器具数量")
|
||||||
private String toolNumber;
|
private BigDecimal recordNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余数量
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "剩余数量")
|
||||||
|
private BigDecimal remainingNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检测编号
|
* 检测编号
|
||||||
@ -87,6 +95,7 @@ public class SubContractorToolRecordVo implements Serializable {
|
|||||||
* 检测时间
|
* 检测时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "检测时间")
|
@ExcelProperty(value = "检测时间")
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
private Date checkTime;
|
private Date checkTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -102,9 +111,10 @@ public class SubContractorToolRecordVo implements Serializable {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进场时间
|
* 记录时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "进场时间")
|
@ExcelProperty(value = "记录时间")
|
||||||
private Date entryTime;
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
private Date recordTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package org.dromara.project.domain.vo.subcontract;
|
package org.dromara.contractor.domain.vo.subcontract;
|
||||||
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.project.domain.BusSubcontract;
|
import org.dromara.contractor.domain.SubSubcontract;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -11,14 +11,14 @@ import java.util.Date;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分包合同视图对象 bus_subcontract
|
* 分包合同视图对象 sub_subcontract
|
||||||
*
|
*
|
||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-06-25
|
* @date 2025-06-25
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@AutoMapper(target = BusSubcontract.class)
|
@AutoMapper(target = SubSubcontract.class)
|
||||||
public class BusSubcontractVo implements Serializable {
|
public class SubSubcontractVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.contractor.domain.SubConstructionUserFile;
|
||||||
|
import org.dromara.contractor.domain.vo.constructionuserfile.SubConstructionUserFileVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 施工人员文件存储Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-04-01
|
||||||
|
*/
|
||||||
|
public interface SubConstructionUserFileMapper extends BaseMapperPlus<SubConstructionUserFile, SubConstructionUserFileVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 施工人员Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-03-07
|
||||||
|
*/
|
||||||
|
public interface SubConstructionUserMapper extends BaseMapperPlus<SubConstructionUser, SubConstructionUserVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包单位Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-03-07
|
||||||
|
*/
|
||||||
|
public interface SubContractorMapper extends BaseMapperPlus<SubContractor, SubContractorVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterial;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterial.SubContractorMaterialVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
public interface SubContractorMaterialMapper extends BaseMapperPlus<SubContractorMaterial, SubContractorMaterialVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterialRecord;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterialrecord.SubContractorMaterialRecordVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料记录Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
public interface SubContractorMaterialRecordMapper extends BaseMapperPlus<SubContractorMaterialRecord, SubContractorMaterialRecordVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.contractor.domain.SubContractorTool;
|
||||||
|
import org.dromara.contractor.domain.vo.contractortool.SubContractorToolVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方工器具Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-26
|
||||||
|
*/
|
||||||
|
public interface SubContractorToolMapper extends BaseMapperPlus<SubContractorTool, SubContractorToolVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.contractor.mapper;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.contractor.domain.SubSubcontract;
|
||||||
|
import org.dromara.contractor.domain.vo.subcontract.SubSubcontractVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包合同Mapper接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-25
|
||||||
|
*/
|
||||||
|
public interface SubSubcontractMapper extends BaseMapperPlus<SubSubcontract, SubSubcontractVo> {
|
||||||
|
|
||||||
|
}
|
@ -1,14 +1,14 @@
|
|||||||
package org.dromara.project.service;
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.project.domain.BusConstructionUserFile;
|
import org.dromara.contractor.domain.SubConstructionUserFile;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileQueryReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileQueryReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileSaveReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileSaveReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileTemplateReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileTemplateReq;
|
||||||
import org.dromara.project.domain.vo.constructionuserfile.BusConstructionUserFileVo;
|
import org.dromara.contractor.domain.vo.constructionuserfile.SubConstructionUserFileVo;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -19,7 +19,7 @@ import java.util.List;
|
|||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-04-01
|
* @date 2025-04-01
|
||||||
*/
|
*/
|
||||||
public interface IBusConstructionUserFileService extends IService<BusConstructionUserFile> {
|
public interface ISubConstructionUserFileService extends IService<SubConstructionUserFile> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员文件存储
|
* 查询施工人员文件存储
|
||||||
@ -27,7 +27,7 @@ public interface IBusConstructionUserFileService extends IService<BusConstructio
|
|||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 施工人员文件存储
|
* @return 施工人员文件存储
|
||||||
*/
|
*/
|
||||||
BusConstructionUserFileVo queryById(Long id);
|
SubConstructionUserFileVo queryById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询符合条件的施工人员文件存储列表
|
* 查询符合条件的施工人员文件存储列表
|
||||||
@ -35,7 +35,7 @@ public interface IBusConstructionUserFileService extends IService<BusConstructio
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 施工人员文件存储列表
|
* @return 施工人员文件存储列表
|
||||||
*/
|
*/
|
||||||
List<BusConstructionUserFileVo> queryList(BusConstructionUserFileQueryReq req);
|
List<SubConstructionUserFileVo> queryList(SubConstructionUserFileQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出施工人员文件模版zip
|
* 导出施工人员文件模版zip
|
||||||
@ -43,7 +43,7 @@ public interface IBusConstructionUserFileService extends IService<BusConstructio
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @param response 响应对象
|
* @param response 响应对象
|
||||||
*/
|
*/
|
||||||
void downloadFileTemplate(BusConstructionUserFileTemplateReq req, HttpServletResponse response);
|
void downloadFileTemplate(SubConstructionUserFileTemplateReq req, HttpServletResponse response);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过zip文件批量上传施工人员文件
|
* 通过zip文件批量上传施工人员文件
|
||||||
@ -59,7 +59,7 @@ public interface IBusConstructionUserFileService extends IService<BusConstructio
|
|||||||
* @param req 保存参数
|
* @param req 保存参数
|
||||||
* @return 是否保存成功
|
* @return 是否保存成功
|
||||||
*/
|
*/
|
||||||
Boolean saveFileList(BusConstructionUserFileSaveReq req);
|
Boolean saveFileList(SubConstructionUserFileSaveReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员文件存储查询条件封装
|
* 获取施工人员文件存储查询条件封装
|
||||||
@ -67,7 +67,7 @@ public interface IBusConstructionUserFileService extends IService<BusConstructio
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
LambdaQueryWrapper<BusConstructionUserFile> buildQueryWrapper(BusConstructionUserFileQueryReq req);
|
LambdaQueryWrapper<SubConstructionUserFile> buildQueryWrapper(SubConstructionUserFileQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员查询条件封装
|
* 获取施工人员查询条件封装
|
||||||
@ -75,6 +75,6 @@ public interface IBusConstructionUserFileService extends IService<BusConstructio
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
LambdaQueryWrapper<BusConstructionUser> buildTemplateQueryWrapper(BusConstructionUserFileTemplateReq req);
|
LambdaQueryWrapper<SubConstructionUser> buildTemplateQueryWrapper(SubConstructionUserFileTemplateReq req);
|
||||||
|
|
||||||
}
|
}
|
@ -1,17 +1,17 @@
|
|||||||
package org.dromara.project.service;
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.project.domain.exportvo.BusConstructionUserExportVo;
|
import org.dromara.contractor.domain.dto.constructionuser.*;
|
||||||
import org.dromara.project.domain.dto.constructionuser.*;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserAttendanceMonthVo;
|
import org.dromara.contractor.domain.exportvo.BusConstructionUserExportVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserAttendanceTotalVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserAttendanceMonthVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserGisVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserAttendanceTotalVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserVo;
|
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserGisVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
public interface IBusConstructionUserService extends IService<BusConstructionUser> {
|
public interface ISubConstructionUserService extends IService<SubConstructionUser> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员
|
* 查询施工人员
|
||||||
@ -30,7 +30,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 施工人员
|
* @return 施工人员
|
||||||
*/
|
*/
|
||||||
BusConstructionUserVo queryById(Long id);
|
SubConstructionUserVo queryById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询施工人员列表
|
* 分页查询施工人员列表
|
||||||
@ -39,7 +39,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 施工人员分页列表
|
* @return 施工人员分页列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusConstructionUserVo> queryPageList(BusConstructionUserQueryReq req, PageQuery pageQuery);
|
TableDataInfo<SubConstructionUserVo> queryPageList(SubConstructionUserQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询施工人员考勤列表
|
* 分页查询施工人员考勤列表
|
||||||
@ -48,7 +48,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 施工人员考勤分页列表
|
* @return 施工人员考勤分页列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusConstructionUserAttendanceTotalVo> queryPageAttendanceList(BusConstructionUserAttendanceQueryReq req, PageQuery pageQuery);
|
TableDataInfo<SubConstructionUserAttendanceTotalVo> queryPageAttendanceList(SubConstructionUserAttendanceQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员月考勤列表
|
* 查询施工人员月考勤列表
|
||||||
@ -56,7 +56,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 施工人员考勤月列表
|
* @return 施工人员考勤月列表
|
||||||
*/
|
*/
|
||||||
List<BusConstructionUserAttendanceMonthVo> queryAttendanceMonthList(BusConstructionUserAttendanceMonthReq req);
|
List<SubConstructionUserAttendanceMonthVo> queryAttendanceMonthList(SubConstructionUserAttendanceMonthReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询符合条件的施工人员列表
|
* 查询符合条件的施工人员列表
|
||||||
@ -64,7 +64,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 施工人员列表
|
* @return 施工人员列表
|
||||||
*/
|
*/
|
||||||
List<BusConstructionUserExportVo> queryList(BusConstructionUserQueryReq req);
|
List<BusConstructionUserExportVo> queryList(SubConstructionUserQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员大屏数据
|
* 获取施工人员大屏数据
|
||||||
@ -72,7 +72,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 施工人员大屏数据
|
* @return 施工人员大屏数据
|
||||||
*/
|
*/
|
||||||
BusConstructionUserGisVo getGisData(BusConstructionUserGisReq req);
|
SubConstructionUserGisVo getGisData(SubConstructionUserGisReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增施工人员
|
* 新增施工人员
|
||||||
@ -80,7 +80,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 施工人员
|
* @param req 施工人员
|
||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*/
|
||||||
Long insertByBo(BusConstructionUserCreateReq req);
|
Long insertByBo(SubConstructionUserCreateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员
|
* 修改施工人员
|
||||||
@ -88,7 +88,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 施工人员
|
* @param req 施工人员
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean updateByBo(BusConstructionUserUpdateReq req);
|
Boolean updateByBo(SubConstructionUserUpdateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员工资
|
* 修改施工人员工资
|
||||||
@ -96,7 +96,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 修改施工人员工资对象
|
* @param req 修改施工人员工资对象
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean updateSalary(BusConstructionUserUpdateSalaryReq req);
|
Boolean updateSalary(SubConstructionUserUpdateSalaryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员打卡状态
|
* 修改施工人员打卡状态
|
||||||
@ -104,7 +104,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 修改施工人员打卡状态对象
|
* @param req 修改施工人员打卡状态对象
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean updateClock(BusConstructionUserUpdateClockReq req);
|
Boolean updateClock(SubConstructionUserUpdateClockReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改施工人员项目(人员迁移)
|
* 修改施工人员项目(人员迁移)
|
||||||
@ -112,7 +112,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 修改施工人员项目对象
|
* @param req 修改施工人员项目对象
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean changeUserProject(BusConstructionUserChangeProjectReq req);
|
Boolean changeUserProject(SubConstructionUserChangeProjectReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量修改施工人员状态
|
* 批量修改施工人员状态
|
||||||
@ -120,7 +120,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 批量修改施工人员状态对象
|
* @param req 批量修改施工人员状态对象
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean batchUpdateStatus(BusConstructionUserBatchUpdateStatusReq req);
|
Boolean batchUpdateStatus(SubConstructionUserBatchUpdateStatusReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据项目id批量修改施工人员打卡状态
|
* 根据项目id批量修改施工人员打卡状态
|
||||||
@ -128,7 +128,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 批量修改施工人员打卡状态对象
|
* @param req 批量修改施工人员打卡状态对象
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean batchUpdateClockByProjectId(BusConstructionUserBatchUpdateClockReq req);
|
Boolean batchUpdateClockByProjectId(SubConstructionUserBatchUpdateClockReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验并批量删除施工人员信息
|
* 校验并批量删除施工人员信息
|
||||||
@ -145,7 +145,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param constructionUser 施工人员对象
|
* @param constructionUser 施工人员对象
|
||||||
* @return 施工人员视图对象
|
* @return 施工人员视图对象
|
||||||
*/
|
*/
|
||||||
BusConstructionUserVo getVo(BusConstructionUser constructionUser);
|
SubConstructionUserVo getVo(SubConstructionUser constructionUser);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员查询条件封装
|
* 获取施工人员查询条件封装
|
||||||
@ -153,7 +153,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
LambdaQueryWrapper<BusConstructionUser> buildQueryWrapper(BusConstructionUserQueryReq req);
|
LambdaQueryWrapper<SubConstructionUser> buildQueryWrapper(SubConstructionUserQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员分页对象视图
|
* 获取施工人员分页对象视图
|
||||||
@ -161,7 +161,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param constructionUserPage 施工人员分页对象
|
* @param constructionUserPage 施工人员分页对象
|
||||||
* @return 施工人员分页对象视图
|
* @return 施工人员分页对象视图
|
||||||
*/
|
*/
|
||||||
Page<BusConstructionUserVo> getVoPage(Page<BusConstructionUser> constructionUserPage);
|
Page<SubConstructionUserVo> getVoPage(Page<SubConstructionUser> constructionUserPage);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员考勤分页对象视图
|
* 获取施工人员考勤分页对象视图
|
||||||
@ -169,7 +169,7 @@ public interface IBusConstructionUserService extends IService<BusConstructionUse
|
|||||||
* @param req 施工人员考勤分页查询条件
|
* @param req 施工人员考勤分页查询条件
|
||||||
* @return 施工人员考勤分页对象视图
|
* @return 施工人员考勤分页对象视图
|
||||||
*/
|
*/
|
||||||
Page<BusConstructionUserAttendanceTotalVo> getAttendanceTotalVoPage(BusConstructionUserAttendanceQueryReq req,
|
Page<SubConstructionUserAttendanceTotalVo> getAttendanceTotalVoPage(SubConstructionUserAttendanceQueryReq req,
|
||||||
PageQuery pageQuery);
|
PageQuery pageQuery);
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,98 @@
|
|||||||
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterialRecord;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterialrecord.SubContractorMaterialRecordVo;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料记录Service接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
public interface ISubContractorMaterialRecordService extends IService<SubContractorMaterialRecord> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询分包方物料记录
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 分包方物料记录
|
||||||
|
*/
|
||||||
|
SubContractorMaterialRecordVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询分包方物料记录列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 分包方物料记录分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<SubContractorMaterialRecordVo> queryPageList(SubContractorMaterialRecordQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的分包方物料记录列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @return 分包方物料记录列表
|
||||||
|
*/
|
||||||
|
List<SubContractorMaterialRecordVo> queryList(SubContractorMaterialRecordQueryReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增分包方物料记录
|
||||||
|
*
|
||||||
|
* @param req 分包方物料记录
|
||||||
|
* @return 新增分包方物料记录id
|
||||||
|
*/
|
||||||
|
Long insertByBo(SubContractorMaterialRecordCreateReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改分包方物料记录
|
||||||
|
*
|
||||||
|
* @param req 分包方物料记录
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(SubContractorMaterialRecordUpdateReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除分包方物料记录信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录视图对象
|
||||||
|
*
|
||||||
|
* @param contractorMaterialRecord 分包方物料记录对象
|
||||||
|
* @return 分包方物料记录视图对象
|
||||||
|
*/
|
||||||
|
SubContractorMaterialRecordVo getVo(SubContractorMaterialRecord contractorMaterialRecord);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录查询条件封装
|
||||||
|
*
|
||||||
|
* @param req 分包方物料记录查询条件
|
||||||
|
* @return 分包方物料记录查询条件封装
|
||||||
|
*/
|
||||||
|
LambdaQueryWrapper<SubContractorMaterialRecord> buildQueryWrapper(SubContractorMaterialRecordQueryReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录分页对象视图
|
||||||
|
*
|
||||||
|
* @param contractorMaterialRecordPage 分包方物料记录分页对象
|
||||||
|
* @return 分包方物料记录分页对象视图
|
||||||
|
*/
|
||||||
|
Page<SubContractorMaterialRecordVo> getVoPage(Page<SubContractorMaterialRecord> contractorMaterialRecordPage);
|
||||||
|
}
|
@ -0,0 +1,98 @@
|
|||||||
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterial;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterial.SubContractorMaterialVo;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料Service接口
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
public interface ISubContractorMaterialService extends IService<SubContractorMaterial> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询分包方物料
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 分包方物料
|
||||||
|
*/
|
||||||
|
SubContractorMaterialVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询分包方物料列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 分包方物料分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<SubContractorMaterialVo> queryPageList(SubContractorMaterialQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的分包方物料列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @return 分包方物料列表
|
||||||
|
*/
|
||||||
|
List<SubContractorMaterialVo> queryList(SubContractorMaterialQueryReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增分包方物料
|
||||||
|
*
|
||||||
|
* @param req 分包方物料
|
||||||
|
* @return 新增分包物料主键id
|
||||||
|
*/
|
||||||
|
Long insertByBo(SubContractorMaterialCreateReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改分包方物料
|
||||||
|
*
|
||||||
|
* @param req 分包方物料
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(SubContractorMaterialUpdateReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除分包方物料信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料视图对象
|
||||||
|
*
|
||||||
|
* @param contractorMaterial 分包方物料对象
|
||||||
|
* @return 分包方物料视图对象
|
||||||
|
*/
|
||||||
|
SubContractorMaterialVo getVo(SubContractorMaterial contractorMaterial);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料查询条件封装
|
||||||
|
*
|
||||||
|
* @param req 分包方物料查询条件
|
||||||
|
* @return 分包方物料查询条件封装
|
||||||
|
*/
|
||||||
|
LambdaQueryWrapper<SubContractorMaterial> buildQueryWrapper(SubContractorMaterialQueryReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料分页对象视图
|
||||||
|
*
|
||||||
|
* @param contractorMaterialPage 分包方物料分页对象
|
||||||
|
* @return 分包方物料分页对象视图
|
||||||
|
*/
|
||||||
|
Page<SubContractorMaterialVo> getVoPage(Page<SubContractorMaterial> contractorMaterialPage);
|
||||||
|
}
|
@ -1,15 +1,15 @@
|
|||||||
package org.dromara.project.service;
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.project.domain.BusContractor;
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorCreateReq;
|
import org.dromara.contractor.domain.dto.contractor.SubContractorCreateReq;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorQueryReq;
|
import org.dromara.contractor.domain.dto.contractor.SubContractorQueryReq;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorUpdateReq;
|
import org.dromara.contractor.domain.dto.contractor.SubContractorUpdateReq;
|
||||||
import org.dromara.project.domain.vo.contractor.BusContractorVo;
|
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
public interface IBusContractorService extends IService<BusContractor> {
|
public interface ISubContractorService extends IService<SubContractor> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包单位
|
* 查询分包单位
|
||||||
@ -28,7 +28,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 分包单位
|
* @return 分包单位
|
||||||
*/
|
*/
|
||||||
BusContractorVo queryById(Long id);
|
SubContractorVo queryById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询分包单位列表
|
* 分页查询分包单位列表
|
||||||
@ -37,7 +37,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 分包单位分页列表
|
* @return 分包单位分页列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusContractorVo> queryPageList(BusContractorQueryReq req, PageQuery pageQuery);
|
TableDataInfo<SubContractorVo> queryPageList(SubContractorQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询符合条件的分包单位列表
|
* 查询符合条件的分包单位列表
|
||||||
@ -45,7 +45,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 分包单位列表
|
* @return 分包单位列表
|
||||||
*/
|
*/
|
||||||
List<BusContractorVo> queryList(BusContractorQueryReq req);
|
List<SubContractorVo> queryList(SubContractorQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增分包单位
|
* 新增分包单位
|
||||||
@ -53,7 +53,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param req 分包单位
|
* @param req 分包单位
|
||||||
* @return 新增id
|
* @return 新增id
|
||||||
*/
|
*/
|
||||||
Long insertByBo(BusContractorCreateReq req);
|
Long insertByBo(SubContractorCreateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改分包单位
|
* 修改分包单位
|
||||||
@ -61,7 +61,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param req 分包单位
|
* @param req 分包单位
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean updateByBo(BusContractorUpdateReq req);
|
Boolean updateByBo(SubContractorUpdateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验并批量删除分包单位信息
|
* 校验并批量删除分包单位信息
|
||||||
@ -78,7 +78,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param contractor 分包公司对象
|
* @param contractor 分包公司对象
|
||||||
* @return 分包公司视图对象
|
* @return 分包公司视图对象
|
||||||
*/
|
*/
|
||||||
BusContractorVo getVo(BusContractor contractor);
|
SubContractorVo getVo(SubContractor contractor);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分包公司查询条件封装
|
* 获取分包公司查询条件封装
|
||||||
@ -86,7 +86,7 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param req 分包公司查询条件
|
* @param req 分包公司查询条件
|
||||||
* @return 分包公司查询条件封装
|
* @return 分包公司查询条件封装
|
||||||
*/
|
*/
|
||||||
LambdaQueryWrapper<BusContractor> buildQueryWrapper(BusContractorQueryReq req);
|
LambdaQueryWrapper<SubContractor> buildQueryWrapper(SubContractorQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分包公司分页对象视图
|
* 获取分包公司分页对象视图
|
||||||
@ -94,6 +94,6 @@ public interface IBusContractorService extends IService<BusContractor> {
|
|||||||
* @param contractorPage 分包公司分页对象
|
* @param contractorPage 分包公司分页对象
|
||||||
* @return 分包公司分页对象视图
|
* @return 分包公司分页对象视图
|
||||||
*/
|
*/
|
||||||
Page<BusContractorVo> getVoPage(Page<BusContractor> contractorPage);
|
Page<SubContractorVo> getVoPage(Page<SubContractor> contractorPage);
|
||||||
|
|
||||||
}
|
}
|
@ -75,10 +75,10 @@ public interface ISubContractorToolRecordService extends IService<SubContractorT
|
|||||||
/**
|
/**
|
||||||
* 获取分包方工器具记录视图对象
|
* 获取分包方工器具记录视图对象
|
||||||
*
|
*
|
||||||
* @param contractorToolEntry 分包方工器具记录对象
|
* @param subContractorToolRecord 分包方工器具记录对象
|
||||||
* @return 分包方工器具记录视图对象
|
* @return 分包方工器具记录视图对象
|
||||||
*/
|
*/
|
||||||
SubContractorToolRecordVo getVo(SubContractorToolRecord contractorToolEntry);
|
SubContractorToolRecordVo getVo(SubContractorToolRecord subContractorToolRecord);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分包方工器具记录查询条件封装
|
* 获取分包方工器具记录查询条件封装
|
||||||
@ -91,8 +91,8 @@ public interface ISubContractorToolRecordService extends IService<SubContractorT
|
|||||||
/**
|
/**
|
||||||
* 获取分包方工器具记录分页对象视图
|
* 获取分包方工器具记录分页对象视图
|
||||||
*
|
*
|
||||||
* @param contractorToolEntryPage 分包方工器具记录分页对象
|
* @param contractorToolRecordPage 分包方工器具记录分页对象
|
||||||
* @return 分包方工器具记录分页对象视图
|
* @return 分包方工器具记录分页对象视图
|
||||||
*/
|
*/
|
||||||
Page<SubContractorToolRecordVo> getVoPage(Page<SubContractorToolRecord> contractorToolEntryPage);
|
Page<SubContractorToolRecordVo> getVoPage(Page<SubContractorToolRecord> contractorToolRecordPage);
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
package org.dromara.project.service;
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.project.domain.BusContractorTool;
|
import org.dromara.contractor.domain.SubContractorTool;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolCreateReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolCreateReq;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolQueryReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolQueryReq;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolUpdateReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolUpdateReq;
|
||||||
import org.dromara.project.domain.vo.contractortool.BusContractorToolVo;
|
import org.dromara.contractor.domain.vo.contractortool.SubContractorToolVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-06-26
|
* @date 2025-06-26
|
||||||
*/
|
*/
|
||||||
public interface IBusContractorToolService extends IService<BusContractorTool> {
|
public interface ISubContractorToolService extends IService<SubContractorTool> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包方工器具
|
* 查询分包方工器具
|
||||||
@ -28,7 +28,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 分包方工器具
|
* @return 分包方工器具
|
||||||
*/
|
*/
|
||||||
BusContractorToolVo queryById(Long id);
|
SubContractorToolVo queryById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询分包方工器具列表
|
* 分页查询分包方工器具列表
|
||||||
@ -37,7 +37,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 分包方工器具分页列表
|
* @return 分包方工器具分页列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusContractorToolVo> queryPageList(BusContractorToolQueryReq req, PageQuery pageQuery);
|
TableDataInfo<SubContractorToolVo> queryPageList(SubContractorToolQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询符合条件的分包方工器具列表
|
* 查询符合条件的分包方工器具列表
|
||||||
@ -45,7 +45,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 分包方工器具列表
|
* @return 分包方工器具列表
|
||||||
*/
|
*/
|
||||||
List<BusContractorToolVo> queryList(BusContractorToolQueryReq req);
|
List<SubContractorToolVo> queryList(SubContractorToolQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增分包方工器具
|
* 新增分包方工器具
|
||||||
@ -53,7 +53,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param req 分包方工器具
|
* @param req 分包方工器具
|
||||||
* @return 新增分包工器具主键id
|
* @return 新增分包工器具主键id
|
||||||
*/
|
*/
|
||||||
Long insertByBo(BusContractorToolCreateReq req);
|
Long insertByBo(SubContractorToolCreateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改分包方工器具
|
* 修改分包方工器具
|
||||||
@ -61,7 +61,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param req 分包方工器具
|
* @param req 分包方工器具
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean updateByBo(BusContractorToolUpdateReq req);
|
Boolean updateByBo(SubContractorToolUpdateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验并批量删除分包方工器具信息
|
* 校验并批量删除分包方工器具信息
|
||||||
@ -78,7 +78,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param contractorTool 分包方工器具对象
|
* @param contractorTool 分包方工器具对象
|
||||||
* @return 分包方工器具视图对象
|
* @return 分包方工器具视图对象
|
||||||
*/
|
*/
|
||||||
BusContractorToolVo getVo(BusContractorTool contractorTool);
|
SubContractorToolVo getVo(SubContractorTool contractorTool);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分包方工器具查询条件封装
|
* 获取分包方工器具查询条件封装
|
||||||
@ -86,7 +86,7 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param req 分包方工器具查询条件
|
* @param req 分包方工器具查询条件
|
||||||
* @return 分包方工器具查询条件封装
|
* @return 分包方工器具查询条件封装
|
||||||
*/
|
*/
|
||||||
LambdaQueryWrapper<BusContractorTool> buildQueryWrapper(BusContractorToolQueryReq req);
|
LambdaQueryWrapper<SubContractorTool> buildQueryWrapper(SubContractorToolQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分包方工器具分页对象视图
|
* 获取分包方工器具分页对象视图
|
||||||
@ -94,5 +94,5 @@ public interface IBusContractorToolService extends IService<BusContractorTool> {
|
|||||||
* @param contractorPage 分包方工器具分页对象
|
* @param contractorPage 分包方工器具分页对象
|
||||||
* @return 分包方工器具分页对象视图
|
* @return 分包方工器具分页对象视图
|
||||||
*/
|
*/
|
||||||
Page<BusContractorToolVo> getVoPage(Page<BusContractorTool> contractorPage);
|
Page<SubContractorToolVo> getVoPage(Page<SubContractorTool> contractorPage);
|
||||||
}
|
}
|
@ -1,15 +1,15 @@
|
|||||||
package org.dromara.project.service;
|
package org.dromara.contractor.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.project.domain.BusSubcontract;
|
import org.dromara.contractor.domain.SubSubcontract;
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractCreateReq;
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractCreateReq;
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractQueryReq;
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractQueryReq;
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractUpdateReq;
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractUpdateReq;
|
||||||
import org.dromara.project.domain.vo.subcontract.BusSubcontractVo;
|
import org.dromara.contractor.domain.vo.subcontract.SubSubcontractVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
* @author lcj
|
* @author lcj
|
||||||
* @date 2025-06-25
|
* @date 2025-06-25
|
||||||
*/
|
*/
|
||||||
public interface IBusSubcontractService extends IService<BusSubcontract> {
|
public interface ISubSubcontractService extends IService<SubSubcontract> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包合同
|
* 查询分包合同
|
||||||
@ -28,7 +28,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param id 主键
|
* @param id 主键
|
||||||
* @return 分包合同
|
* @return 分包合同
|
||||||
*/
|
*/
|
||||||
BusSubcontractVo queryById(Long id);
|
SubSubcontractVo queryById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询分包合同列表
|
* 分页查询分包合同列表
|
||||||
@ -37,7 +37,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
* @return 分包合同分页列表
|
* @return 分包合同分页列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusSubcontractVo> queryPageList(BusSubcontractQueryReq req, PageQuery pageQuery);
|
TableDataInfo<SubSubcontractVo> queryPageList(SubSubcontractQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询符合条件的分包合同列表
|
* 查询符合条件的分包合同列表
|
||||||
@ -45,7 +45,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 分包合同列表
|
* @return 分包合同列表
|
||||||
*/
|
*/
|
||||||
List<BusSubcontractVo> queryList(BusSubcontractQueryReq req);
|
List<SubSubcontractVo> queryList(SubSubcontractQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增分包合同
|
* 新增分包合同
|
||||||
@ -53,7 +53,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param req 分包合同
|
* @param req 分包合同
|
||||||
* @return 新增主键id
|
* @return 新增主键id
|
||||||
*/
|
*/
|
||||||
Long insertByBo(BusSubcontractCreateReq req);
|
Long insertByBo(SubSubcontractCreateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改分包合同
|
* 修改分包合同
|
||||||
@ -61,7 +61,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param req 分包合同
|
* @param req 分包合同
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
Boolean updateByBo(BusSubcontractUpdateReq req);
|
Boolean updateByBo(SubSubcontractUpdateReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验并批量删除分包合同信息
|
* 校验并批量删除分包合同信息
|
||||||
@ -78,7 +78,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param subcontract 分包合同
|
* @param subcontract 分包合同
|
||||||
* @return 分包合同视图
|
* @return 分包合同视图
|
||||||
*/
|
*/
|
||||||
BusSubcontractVo getVo(BusSubcontract subcontract);
|
SubSubcontractVo getVo(SubSubcontract subcontract);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户和项目关联对象查询条件封装
|
* 获取用户和项目关联对象查询条件封装
|
||||||
@ -86,7 +86,7 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param req 查询条件
|
* @param req 查询条件
|
||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
LambdaQueryWrapper<BusSubcontract> buildQueryWrapper(BusSubcontractQueryReq req);
|
LambdaQueryWrapper<SubSubcontract> buildQueryWrapper(SubSubcontractQueryReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分包合同分页视图
|
* 获取分包合同分页视图
|
||||||
@ -94,6 +94,6 @@ public interface IBusSubcontractService extends IService<BusSubcontract> {
|
|||||||
* @param subcontractPage 分包合同分页
|
* @param subcontractPage 分包合同分页
|
||||||
* @return 分包合同分页视图
|
* @return 分包合同分页视图
|
||||||
*/
|
*/
|
||||||
Page<BusSubcontractVo> getVoPage(Page<BusSubcontract> subcontractPage);
|
Page<SubSubcontractVo> getVoPage(Page<SubSubcontract> subcontractPage);
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.service.impl;
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
@ -18,20 +18,20 @@ import org.dromara.common.core.utils.ObjectUtils;
|
|||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.core.utils.file.FileUtils;
|
import org.dromara.common.core.utils.file.FileUtils;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.constant.BusConstructionUserConstant;
|
import org.dromara.contractor.domain.SubConstructionUserFile;
|
||||||
|
import org.dromara.contractor.constant.SubConstructionUserConstant;
|
||||||
import org.dromara.project.domain.BusConstructionBlacklist;
|
import org.dromara.project.domain.BusConstructionBlacklist;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.project.domain.BusConstructionUserFile;
|
|
||||||
import org.dromara.project.domain.BusProject;
|
import org.dromara.project.domain.BusProject;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileQueryReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileQueryReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileSaveReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileSaveReq;
|
||||||
import org.dromara.project.domain.dto.constructionuserfile.BusConstructionUserFileTemplateReq;
|
import org.dromara.contractor.domain.dto.constructionuserfile.SubConstructionUserFileTemplateReq;
|
||||||
import org.dromara.project.domain.vo.constructionuserfile.BusConstructionUserFileVo;
|
import org.dromara.contractor.domain.vo.constructionuserfile.SubConstructionUserFileVo;
|
||||||
import org.dromara.project.mapper.BusConstructionUserFileMapper;
|
import org.dromara.contractor.mapper.SubConstructionUserFileMapper;
|
||||||
import org.dromara.project.service.IBusConstructionBlacklistService;
|
import org.dromara.project.service.IBusConstructionBlacklistService;
|
||||||
import org.dromara.project.service.IBusConstructionUserFileService;
|
import org.dromara.contractor.service.ISubConstructionUserFileService;
|
||||||
import org.dromara.project.service.IBusConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
@ -62,14 +62,14 @@ import java.util.zip.ZipOutputStream;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstructionUserFileMapper, BusConstructionUserFile>
|
public class SubConstructionUserFileServiceImpl extends ServiceImpl<SubConstructionUserFileMapper, SubConstructionUserFile>
|
||||||
implements IBusConstructionUserFileService {
|
implements ISubConstructionUserFileService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISysDictTypeService dictTypeService;
|
private ISysDictTypeService dictTypeService;
|
||||||
@ -87,7 +87,7 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
* @return 施工人员文件存储
|
* @return 施工人员文件存储
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusConstructionUserFileVo queryById(Long id) {
|
public SubConstructionUserFileVo queryById(Long id) {
|
||||||
return baseMapper.selectVoById(id);
|
return baseMapper.selectVoById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,8 +98,8 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
* @return 施工人员文件存储列表
|
* @return 施工人员文件存储列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusConstructionUserFileVo> queryList(BusConstructionUserFileQueryReq req) {
|
public List<SubConstructionUserFileVo> queryList(SubConstructionUserFileQueryReq req) {
|
||||||
LambdaQueryWrapper<BusConstructionUserFile> lqw = buildQueryWrapper(req);
|
LambdaQueryWrapper<SubConstructionUserFile> lqw = buildQueryWrapper(req);
|
||||||
return baseMapper.selectVoList(lqw);
|
return baseMapper.selectVoList(lqw);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
* @param response 响应对象
|
* @param response 响应对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void downloadFileTemplate(BusConstructionUserFileTemplateReq req, HttpServletResponse response) {
|
public void downloadFileTemplate(SubConstructionUserFileTemplateReq req, HttpServletResponse response) {
|
||||||
// 1. 校验项目是否存在
|
// 1. 校验项目是否存在
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
BusProject project = projectService.getById(projectId);
|
BusProject project = projectService.getById(projectId);
|
||||||
@ -118,7 +118,7 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
throw new ServiceException("项目不存在", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("项目不存在", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
// 2. 查询施工人员列表
|
// 2. 查询施工人员列表
|
||||||
List<BusConstructionUser> constructionUserList = constructionUserService.list(this.buildTemplateQueryWrapper(req));
|
List<SubConstructionUser> constructionUserList = constructionUserService.list(this.buildTemplateQueryWrapper(req));
|
||||||
// 3. 根目录名称
|
// 3. 根目录名称
|
||||||
String randomString = project.getId() + "_" + RandomUtil.randomString(8);
|
String randomString = project.getId() + "_" + RandomUtil.randomString(8);
|
||||||
String rootFolder = project.getShortName() + "_" + randomString + "/";
|
String rootFolder = project.getShortName() + "_" + randomString + "/";
|
||||||
@ -131,13 +131,13 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
zipOut.putNextEntry(new ZipEntry(rootFolder));
|
zipOut.putNextEntry(new ZipEntry(rootFolder));
|
||||||
zipOut.closeEntry();
|
zipOut.closeEntry();
|
||||||
// 7. 对每个人,创建其文件夹,再在其中创建子文件夹(如“三级安全教育”、“体检报告”...)及文件
|
// 7. 对每个人,创建其文件夹,再在其中创建子文件夹(如“三级安全教育”、“体检报告”...)及文件
|
||||||
for (BusConstructionUser constructionUser : constructionUserList) {
|
for (SubConstructionUser constructionUser : constructionUserList) {
|
||||||
String personFolder = rootFolder + constructionUser.getUserName() + "-" + constructionUser.getId() + "/";
|
String personFolder = rootFolder + constructionUser.getUserName() + "-" + constructionUser.getId() + "/";
|
||||||
// 7.1. 写入个人文件夹条目
|
// 7.1. 写入个人文件夹条目
|
||||||
zipOut.putNextEntry(new ZipEntry(personFolder));
|
zipOut.putNextEntry(new ZipEntry(personFolder));
|
||||||
zipOut.closeEntry();
|
zipOut.closeEntry();
|
||||||
// 7.2. 在个人文件夹下写几个子文件夹
|
// 7.2. 在个人文件夹下写几个子文件夹
|
||||||
List<SysDictDataVo> dictDataList = dictTypeService.selectDictDataByType(BusConstructionUserConstant.USER_FILE_TYPE);
|
List<SysDictDataVo> dictDataList = dictTypeService.selectDictDataByType(SubConstructionUserConstant.USER_FILE_TYPE);
|
||||||
for (SysDictDataVo dataVo : dictDataList) {
|
for (SysDictDataVo dataVo : dictDataList) {
|
||||||
String subFolderPath = personFolder + dataVo.getDictValue() + "_" + dataVo.getDictLabel() + "/";
|
String subFolderPath = personFolder + dataVo.getDictValue() + "_" + dataVo.getDictLabel() + "/";
|
||||||
zipOut.putNextEntry(new ZipEntry(subFolderPath));
|
zipOut.putNextEntry(new ZipEntry(subFolderPath));
|
||||||
@ -183,7 +183,7 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
String basePath = "unzip_path";
|
String basePath = "unzip_path";
|
||||||
String destDirPath = basePath + "/" + DateUtils.getDate() + "/" + projectId + "/" + randomStr;
|
String destDirPath = basePath + "/" + DateUtils.getDate() + "/" + projectId + "/" + randomStr;
|
||||||
// 构建需要修改的对象
|
// 构建需要修改的对象
|
||||||
List<BusConstructionUserFile> constructionUserFileList = new ArrayList<>();
|
List<SubConstructionUserFile> constructionUserFileList = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
// 2. 创建临时文件
|
// 2. 创建临时文件
|
||||||
tempZipFile = File.createTempFile(tempZipFilePath, null);
|
tempZipFile = File.createTempFile(tempZipFilePath, null);
|
||||||
@ -230,7 +230,7 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
.collect(Collectors.joining(","));
|
.collect(Collectors.joining(","));
|
||||||
}
|
}
|
||||||
// 8. 创建 BusConstructionUserFile 对象
|
// 8. 创建 BusConstructionUserFile 对象
|
||||||
BusConstructionUserFile constructionUserFile = new BusConstructionUserFile();
|
SubConstructionUserFile constructionUserFile = new SubConstructionUserFile();
|
||||||
constructionUserFile.setUserId(userId);
|
constructionUserFile.setUserId(userId);
|
||||||
constructionUserFile.setFileType(fileType);
|
constructionUserFile.setFileType(fileType);
|
||||||
constructionUserFile.setPath(fileIdStr);
|
constructionUserFile.setPath(fileIdStr);
|
||||||
@ -264,16 +264,16 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 9. 判断是否已经存在
|
// 9. 判断是否已经存在
|
||||||
List<Long> userIdList = constructionUserFileList.stream().map(BusConstructionUserFile::getUserId).toList();
|
List<Long> userIdList = constructionUserFileList.stream().map(SubConstructionUserFile::getUserId).toList();
|
||||||
List<BusConstructionUserFile> oldConstructionUserFileList = this.lambdaQuery()
|
List<SubConstructionUserFile> oldConstructionUserFileList = this.lambdaQuery()
|
||||||
.in(BusConstructionUserFile::getUserId, userIdList).list();
|
.in(SubConstructionUserFile::getUserId, userIdList).list();
|
||||||
// 10. 如果存在,则删除数据库对应记录和文件
|
// 10. 如果存在,则删除数据库对应记录和文件
|
||||||
if (CollUtil.isNotEmpty(oldConstructionUserFileList)) {
|
if (CollUtil.isNotEmpty(oldConstructionUserFileList)) {
|
||||||
// 待删除id
|
// 待删除id
|
||||||
List<Long> deleteIds = oldConstructionUserFileList.stream().map(BusConstructionUserFile::getId).toList();
|
List<Long> deleteIds = oldConstructionUserFileList.stream().map(SubConstructionUserFile::getId).toList();
|
||||||
// 待删除对象存储id
|
// 待删除对象存储id
|
||||||
List<Long> deleteOssIds = new ArrayList<>();
|
List<Long> deleteOssIds = new ArrayList<>();
|
||||||
for (BusConstructionUserFile constructionUserFile : oldConstructionUserFileList) {
|
for (SubConstructionUserFile constructionUserFile : oldConstructionUserFileList) {
|
||||||
String path = constructionUserFile.getPath();
|
String path = constructionUserFile.getPath();
|
||||||
if (StrUtil.isNotBlank(path)) {
|
if (StrUtil.isNotBlank(path)) {
|
||||||
String[] ossIds = path.split(",");
|
String[] ossIds = path.split(",");
|
||||||
@ -307,16 +307,16 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean saveFileList(BusConstructionUserFileSaveReq req) {
|
public Boolean saveFileList(SubConstructionUserFileSaveReq req) {
|
||||||
// 1. 参数校验
|
// 1. 参数校验
|
||||||
// 判断参数是否为空
|
// 判断参数是否为空
|
||||||
Long userId = req.getUserId();
|
Long userId = req.getUserId();
|
||||||
List<BusConstructionUserFileReq> fileList = req.getFileList();
|
List<SubConstructionUserFileReq> fileList = req.getFileList();
|
||||||
if (userId == null || CollUtil.isEmpty(fileList)) {
|
if (userId == null || CollUtil.isEmpty(fileList)) {
|
||||||
throw new ServiceException("施工人员文件存储参数错误", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("施工人员文件存储参数错误", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
// 校验修改用户是否存在
|
// 校验修改用户是否存在
|
||||||
BusConstructionUser constructionUser = constructionUserService.getById(userId);
|
SubConstructionUser constructionUser = constructionUserService.getById(userId);
|
||||||
if (constructionUser == null) {
|
if (constructionUser == null) {
|
||||||
throw new ServiceException("施工人员不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("施工人员不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -325,22 +325,22 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
Long loginUser = LoginHelper.getUserId();
|
Long loginUser = LoginHelper.getUserId();
|
||||||
projectService.validAuth(projectId, loginUser);
|
projectService.validAuth(projectId, loginUser);
|
||||||
// 2. 查询当前用户的所有文件记录(一次性查询,避免多次访问数据库)
|
// 2. 查询当前用户的所有文件记录(一次性查询,避免多次访问数据库)
|
||||||
LambdaQueryWrapper<BusConstructionUserFile> lqw = Wrappers.lambdaQuery(BusConstructionUserFile.class)
|
LambdaQueryWrapper<SubConstructionUserFile> lqw = Wrappers.lambdaQuery(SubConstructionUserFile.class)
|
||||||
.eq(BusConstructionUserFile::getUserId, userId);
|
.eq(SubConstructionUserFile::getUserId, userId);
|
||||||
List<BusConstructionUserFile> constructionUserFileList = this.list(lqw);
|
List<SubConstructionUserFile> constructionUserFileList = this.list(lqw);
|
||||||
// 3. 构建 Map<fileType, BusConstructionUserFile> 方便查找
|
// 3. 构建 Map<fileType, BusConstructionUserFile> 方便查找
|
||||||
Map<String, BusConstructionUserFile> existingFileMap = constructionUserFileList.stream()
|
Map<String, SubConstructionUserFile> existingFileMap = constructionUserFileList.stream()
|
||||||
.collect(Collectors.toMap(BusConstructionUserFile::getFileType, Function.identity()));
|
.collect(Collectors.toMap(SubConstructionUserFile::getFileType, Function.identity()));
|
||||||
// 4. 处理新增或更新的数据
|
// 4. 处理新增或更新的数据
|
||||||
List<BusConstructionUserFile> saveOrUpdateList = new ArrayList<>();
|
List<SubConstructionUserFile> saveOrUpdateList = new ArrayList<>();
|
||||||
// 处理删除的数据
|
// 处理删除的数据
|
||||||
List<Long> deleteList = new ArrayList<>();
|
List<Long> deleteList = new ArrayList<>();
|
||||||
for (BusConstructionUserFileReq fileReq : fileList) {
|
for (SubConstructionUserFileReq fileReq : fileList) {
|
||||||
String fileType = fileReq.getFileType();
|
String fileType = fileReq.getFileType();
|
||||||
String fileId = fileReq.getFileId();
|
String fileId = fileReq.getFileId();
|
||||||
if (existingFileMap.containsKey(fileType)) {
|
if (existingFileMap.containsKey(fileType)) {
|
||||||
// 如果存在,则更新
|
// 如果存在,则更新
|
||||||
BusConstructionUserFile existingFile = existingFileMap.get(fileType);
|
SubConstructionUserFile existingFile = existingFileMap.get(fileType);
|
||||||
// 如果文件id相同,则不更新
|
// 如果文件id相同,则不更新
|
||||||
if (StringUtils.equals(existingFile.getPath(), fileId)) {
|
if (StringUtils.equals(existingFile.getPath(), fileId)) {
|
||||||
continue;
|
continue;
|
||||||
@ -355,7 +355,7 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
} else {
|
} else {
|
||||||
// 如果不存在,且存在文件id则更新
|
// 如果不存在,且存在文件id则更新
|
||||||
if (StringUtils.isNotBlank(fileId)) {
|
if (StringUtils.isNotBlank(fileId)) {
|
||||||
BusConstructionUserFile newFile = new BusConstructionUserFile();
|
SubConstructionUserFile newFile = new SubConstructionUserFile();
|
||||||
newFile.setUserId(userId);
|
newFile.setUserId(userId);
|
||||||
newFile.setFileType(fileType);
|
newFile.setFileType(fileType);
|
||||||
newFile.setPath(fileId);
|
newFile.setPath(fileId);
|
||||||
@ -387,8 +387,8 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LambdaQueryWrapper<BusConstructionUserFile> buildQueryWrapper(BusConstructionUserFileQueryReq req) {
|
public LambdaQueryWrapper<SubConstructionUserFile> buildQueryWrapper(SubConstructionUserFileQueryReq req) {
|
||||||
LambdaQueryWrapper<BusConstructionUserFile> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SubConstructionUserFile> lqw = new LambdaQueryWrapper<>();
|
||||||
if (req == null) {
|
if (req == null) {
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
@ -397,11 +397,11 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
String fileType = req.getFileType();
|
String fileType = req.getFileType();
|
||||||
String remark = req.getRemark();
|
String remark = req.getRemark();
|
||||||
// 模糊查询
|
// 模糊查询
|
||||||
lqw.like(StringUtils.isNotBlank(remark), BusConstructionUserFile::getRemark, remark);
|
lqw.like(StringUtils.isNotBlank(remark), SubConstructionUserFile::getRemark, remark);
|
||||||
// 精确查询
|
// 精确查询
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(id), BusConstructionUserFile::getId, id);
|
lqw.eq(ObjectUtils.isNotEmpty(id), SubConstructionUserFile::getId, id);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(userId), BusConstructionUserFile::getUserId, userId);
|
lqw.eq(ObjectUtils.isNotEmpty(userId), SubConstructionUserFile::getUserId, userId);
|
||||||
lqw.eq(StringUtils.isNotBlank(fileType), BusConstructionUserFile::getFileType, fileType);
|
lqw.eq(StringUtils.isNotBlank(fileType), SubConstructionUserFile::getFileType, fileType);
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -412,8 +412,8 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LambdaQueryWrapper<BusConstructionUser> buildTemplateQueryWrapper(BusConstructionUserFileTemplateReq req) {
|
public LambdaQueryWrapper<SubConstructionUser> buildTemplateQueryWrapper(SubConstructionUserFileTemplateReq req) {
|
||||||
LambdaQueryWrapper<BusConstructionUser> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SubConstructionUser> lqw = new LambdaQueryWrapper<>();
|
||||||
if (req == null) {
|
if (req == null) {
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
@ -425,22 +425,22 @@ public class BusConstructionUserFileServiceImpl extends ServiceImpl<BusConstruct
|
|||||||
String clock = req.getClock();
|
String clock = req.getClock();
|
||||||
List<Long> userIdList = req.getUserIdList();
|
List<Long> userIdList = req.getUserIdList();
|
||||||
// 模糊查询
|
// 模糊查询
|
||||||
lqw.like(StringUtils.isNotBlank(userName), BusConstructionUser::getUserName, userName);
|
lqw.like(StringUtils.isNotBlank(userName), SubConstructionUser::getUserName, userName);
|
||||||
// 精确查询
|
// 精确查询
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), BusConstructionUser::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubConstructionUser::getProjectId, projectId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(contractorId), BusConstructionUser::getContractorId, contractorId);
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubConstructionUser::getContractorId, contractorId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(teamId), BusConstructionUser::getTeamId, teamId);
|
lqw.eq(ObjectUtils.isNotEmpty(teamId), SubConstructionUser::getTeamId, teamId);
|
||||||
lqw.eq(StringUtils.isNotBlank(typeOfWork), BusConstructionUser::getTypeOfWork, typeOfWork);
|
lqw.eq(StringUtils.isNotBlank(typeOfWork), SubConstructionUser::getTypeOfWork, typeOfWork);
|
||||||
lqw.eq(StringUtils.isNotBlank(clock), BusConstructionUser::getClock, clock);
|
lqw.eq(StringUtils.isNotBlank(clock), SubConstructionUser::getClock, clock);
|
||||||
if (CollUtil.isNotEmpty(userIdList)) {
|
if (CollUtil.isNotEmpty(userIdList)) {
|
||||||
lqw.in(BusConstructionUser::getId, userIdList);
|
lqw.in(SubConstructionUser::getId, userIdList);
|
||||||
}
|
}
|
||||||
// 根据项目id获取黑名单施工人员
|
// 根据项目id获取黑名单施工人员
|
||||||
List<Long> blacklistUserIdList = constructionBlacklistService.lambdaQuery()
|
List<Long> blacklistUserIdList = constructionBlacklistService.lambdaQuery()
|
||||||
.eq(BusConstructionBlacklist::getProjectId, projectId)
|
.eq(BusConstructionBlacklist::getProjectId, projectId)
|
||||||
.list().stream().map(BusConstructionBlacklist::getUserId).toList();
|
.list().stream().map(BusConstructionBlacklist::getUserId).toList();
|
||||||
if (CollUtil.isNotEmpty(blacklistUserIdList)) {
|
if (CollUtil.isNotEmpty(blacklistUserIdList)) {
|
||||||
lqw.notIn(BusConstructionUser::getId, blacklistUserIdList);
|
lqw.notIn(SubConstructionUser::getId, blacklistUserIdList);
|
||||||
}
|
}
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.service.impl;
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.IdcardUtil;
|
import cn.hutool.core.util.IdcardUtil;
|
||||||
@ -18,22 +18,28 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.constant.BusConstructionUserConstant;
|
import org.dromara.common.utils.IdCardEncryptorUtil;
|
||||||
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
|
import org.dromara.contractor.domain.SubConstructionUserFile;
|
||||||
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.dto.constructionuser.*;
|
||||||
|
import org.dromara.contractor.domain.vo.constructionuser.*;
|
||||||
|
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||||
|
import org.dromara.contractor.service.ISubConstructionUserFileService;
|
||||||
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
|
import org.dromara.contractor.constant.SubConstructionUserConstant;
|
||||||
import org.dromara.project.domain.*;
|
import org.dromara.project.domain.*;
|
||||||
import org.dromara.project.domain.dto.constructionuser.*;
|
|
||||||
import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum;
|
import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum;
|
||||||
import org.dromara.project.domain.enums.BusAttendanceCommuterEnum;
|
import org.dromara.project.domain.enums.BusAttendanceCommuterEnum;
|
||||||
import org.dromara.project.domain.enums.BusConstructionUserAttendanceStatusEnum;
|
import org.dromara.project.domain.enums.BusConstructionUserAttendanceStatusEnum;
|
||||||
import org.dromara.project.domain.enums.BusConstructionUserFileStatusEnum;
|
import org.dromara.contractor.domain.enums.SubConstructionUserFileStatusEnum;
|
||||||
import org.dromara.project.domain.exportvo.BusConstructionUserExportVo;
|
import org.dromara.contractor.domain.exportvo.BusConstructionUserExportVo;
|
||||||
import org.dromara.project.domain.vo.constructionuser.*;
|
import org.dromara.contractor.mapper.SubConstructionUserMapper;
|
||||||
import org.dromara.project.domain.vo.contractor.BusContractorVo;
|
|
||||||
import org.dromara.project.mapper.BusConstructionUserMapper;
|
|
||||||
import org.dromara.project.service.*;
|
import org.dromara.project.service.*;
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.service.ISysDictTypeService;
|
import org.dromara.system.service.ISysDictTypeService;
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
import org.dromara.common.utils.IdCardEncryptorUtil;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -50,15 +56,15 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionUserMapper, BusConstructionUser>
|
public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionUserMapper, SubConstructionUser>
|
||||||
implements IBusConstructionUserService {
|
implements ISubConstructionUserService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorService contractorService;
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Resource
|
@Resource
|
||||||
@ -77,7 +83,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionUserFileService constructionUserFileService;
|
private ISubConstructionUserFileService constructionUserFileService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISysDictTypeService dictTypeService;
|
private ISysDictTypeService dictTypeService;
|
||||||
@ -96,8 +102,8 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员
|
* @return 施工人员
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusConstructionUserVo queryById(Long id) {
|
public SubConstructionUserVo queryById(Long id) {
|
||||||
BusConstructionUser constructionUser = this.getById(id);
|
SubConstructionUser constructionUser = this.getById(id);
|
||||||
if (constructionUser == null) {
|
if (constructionUser == null) {
|
||||||
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -112,9 +118,9 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员分页列表
|
* @return 施工人员分页列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<BusConstructionUserVo> queryPageList(BusConstructionUserQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubConstructionUserVo> queryPageList(SubConstructionUserQueryReq req, PageQuery pageQuery) {
|
||||||
// 查询数据库
|
// 查询数据库
|
||||||
Page<BusConstructionUser> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
Page<SubConstructionUser> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
||||||
return TableDataInfo.build(getVoPage(result));
|
return TableDataInfo.build(getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +132,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员考勤分页列表
|
* @return 施工人员考勤分页列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<BusConstructionUserAttendanceTotalVo> queryPageAttendanceList(BusConstructionUserAttendanceQueryReq req,
|
public TableDataInfo<SubConstructionUserAttendanceTotalVo> queryPageAttendanceList(SubConstructionUserAttendanceQueryReq req,
|
||||||
PageQuery pageQuery) {
|
PageQuery pageQuery) {
|
||||||
return TableDataInfo.build(getAttendanceTotalVoPage(req, pageQuery));
|
return TableDataInfo.build(getAttendanceTotalVoPage(req, pageQuery));
|
||||||
}
|
}
|
||||||
@ -138,7 +144,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员考勤月列表
|
* @return 施工人员考勤月列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusConstructionUserAttendanceMonthVo> queryAttendanceMonthList(BusConstructionUserAttendanceMonthReq req) {
|
public List<SubConstructionUserAttendanceMonthVo> queryAttendanceMonthList(SubConstructionUserAttendanceMonthReq req) {
|
||||||
Long id = req.getUserId();
|
Long id = req.getUserId();
|
||||||
String clockMonth = req.getClockMonth();
|
String clockMonth = req.getClockMonth();
|
||||||
if (this.getById(id) == null) {
|
if (this.getById(id) == null) {
|
||||||
@ -170,13 +176,13 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
Map<Long, List<SysOssVo>> ossIdUrlMap = ossService.listByIds(picIds)
|
Map<Long, List<SysOssVo>> ossIdUrlMap = ossService.listByIds(picIds)
|
||||||
.stream().collect(Collectors.groupingBy(SysOssVo::getOssId));
|
.stream().collect(Collectors.groupingBy(SysOssVo::getOssId));
|
||||||
// 遍历每天,计算考勤状态
|
// 遍历每天,计算考勤状态
|
||||||
List<BusConstructionUserAttendanceMonthVo> respList = new ArrayList<>();
|
List<SubConstructionUserAttendanceMonthVo> respList = new ArrayList<>();
|
||||||
dateListMap.forEach((date, attendanceList) -> {
|
dateListMap.forEach((date, attendanceList) -> {
|
||||||
BusConstructionUserAttendanceMonthVo resp = new BusConstructionUserAttendanceMonthVo();
|
SubConstructionUserAttendanceMonthVo resp = new SubConstructionUserAttendanceMonthVo();
|
||||||
resp.setId(id);
|
resp.setId(id);
|
||||||
resp.setClockDate(date);
|
resp.setClockDate(date);
|
||||||
// 获取考勤记录
|
// 获取考勤记录
|
||||||
BusConstructionUserAttendanceByDay day = BusConstructionUserAttendanceByDay.build(attendanceList);
|
SubConstructionUserAttendanceByDay day = SubConstructionUserAttendanceByDay.build(attendanceList);
|
||||||
// 填充打卡图片url
|
// 填充打卡图片url
|
||||||
if (day != null) {
|
if (day != null) {
|
||||||
if (day.getUpClockPicId() != null) {
|
if (day.getUpClockPicId() != null) {
|
||||||
@ -217,7 +223,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
respList.add(resp);
|
respList.add(resp);
|
||||||
});
|
});
|
||||||
// 按打卡日期正序排列
|
// 按打卡日期正序排列
|
||||||
respList.sort(Comparator.comparing(BusConstructionUserAttendanceMonthVo::getClockDate));
|
respList.sort(Comparator.comparing(SubConstructionUserAttendanceMonthVo::getClockDate));
|
||||||
return respList;
|
return respList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,11 +234,11 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员列表
|
* @return 施工人员列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusConstructionUserExportVo> queryList(BusConstructionUserQueryReq req) {
|
public List<BusConstructionUserExportVo> queryList(SubConstructionUserQueryReq req) {
|
||||||
LambdaQueryWrapper<BusConstructionUser> lqw = this.buildQueryWrapper(req);
|
LambdaQueryWrapper<SubConstructionUser> lqw = this.buildQueryWrapper(req);
|
||||||
List<BusConstructionUserVo> constructionUserVoList = this.list(lqw).stream().map(this::getVo).toList();
|
List<SubConstructionUserVo> constructionUserVoList = this.list(lqw).stream().map(this::getVo).toList();
|
||||||
// 关联项目信息
|
// 关联项目信息
|
||||||
Set<Long> projectIdList = constructionUserVoList.stream().map(BusConstructionUserVo::getProjectId)
|
Set<Long> projectIdList = constructionUserVoList.stream().map(SubConstructionUserVo::getProjectId)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
Map<Long, List<BusProject>> projectIdProjectMap = projectService.listByIds(projectIdList).stream()
|
Map<Long, List<BusProject>> projectIdProjectMap = projectService.listByIds(projectIdList).stream()
|
||||||
.collect(Collectors.groupingBy(BusProject::getId));
|
.collect(Collectors.groupingBy(BusProject::getId));
|
||||||
@ -263,7 +269,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员大屏数据
|
* @return 施工人员大屏数据
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusConstructionUserGisVo getGisData(BusConstructionUserGisReq req) {
|
public SubConstructionUserGisVo getGisData(SubConstructionUserGisReq req) {
|
||||||
// 参数校验
|
// 参数校验
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
BusProject project = projectService.getById(projectId);
|
BusProject project = projectService.getById(projectId);
|
||||||
@ -271,10 +277,10 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
throw new ServiceException("项目信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("项目信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
// 获取大屏数据
|
// 获取大屏数据
|
||||||
BusConstructionUserGisVo resp = new BusConstructionUserGisVo();
|
SubConstructionUserGisVo resp = new SubConstructionUserGisVo();
|
||||||
// 获取施工人员总数
|
// 获取施工人员总数
|
||||||
Long count = this.lambdaQuery()
|
Long count = this.lambdaQuery()
|
||||||
.eq(BusConstructionUser::getProjectId, projectId).count();
|
.eq(SubConstructionUser::getProjectId, projectId).count();
|
||||||
resp.setPeopleCount(count);
|
resp.setPeopleCount(count);
|
||||||
// 获取考勤数据
|
// 获取考勤数据
|
||||||
List<Long> attendancePeopleList = attendanceService.listAttendancePeopleByProjectId(projectId);
|
List<Long> attendancePeopleList = attendanceService.listAttendancePeopleByProjectId(projectId);
|
||||||
@ -291,9 +297,9 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Long insertByBo(BusConstructionUserCreateReq req) {
|
public Long insertByBo(SubConstructionUserCreateReq req) {
|
||||||
// 将实体类和 DTO 进行转换
|
// 将实体类和 DTO 进行转换
|
||||||
BusConstructionUser constructionUser = new BusConstructionUser();
|
SubConstructionUser constructionUser = new SubConstructionUser();
|
||||||
BeanUtils.copyProperties(req, constructionUser);
|
BeanUtils.copyProperties(req, constructionUser);
|
||||||
// 数据校验
|
// 数据校验
|
||||||
validEntityBeforeSave(constructionUser, true);
|
validEntityBeforeSave(constructionUser, true);
|
||||||
@ -317,14 +323,14 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(BusConstructionUserUpdateReq req) {
|
public Boolean updateByBo(SubConstructionUserUpdateReq req) {
|
||||||
// 将实体类和 DTO 进行转换
|
// 将实体类和 DTO 进行转换
|
||||||
BusConstructionUser constructionUser = new BusConstructionUser();
|
SubConstructionUser constructionUser = new SubConstructionUser();
|
||||||
BeanUtils.copyProperties(req, constructionUser);
|
BeanUtils.copyProperties(req, constructionUser);
|
||||||
// 数据校验
|
// 数据校验
|
||||||
validEntityBeforeSave(constructionUser, false);
|
validEntityBeforeSave(constructionUser, false);
|
||||||
// 判断是否存在
|
// 判断是否存在
|
||||||
BusConstructionUser oldConstructionUser = this.getById(constructionUser.getId());
|
SubConstructionUser oldConstructionUser = this.getById(constructionUser.getId());
|
||||||
if (oldConstructionUser == null) {
|
if (oldConstructionUser == null) {
|
||||||
throw new ServiceException("修改施工人员失败,数据不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("修改施工人员失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -347,18 +353,18 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateSalary(BusConstructionUserUpdateSalaryReq req) {
|
public Boolean updateSalary(SubConstructionUserUpdateSalaryReq req) {
|
||||||
Long id = req.getId();
|
Long id = req.getId();
|
||||||
Long salary = req.getSalary();
|
Long salary = req.getSalary();
|
||||||
// 判断对应施工人员是否存在
|
// 判断对应施工人员是否存在
|
||||||
BusConstructionUser oldConstructionUser = this.getById(id);
|
SubConstructionUser oldConstructionUser = this.getById(id);
|
||||||
if (oldConstructionUser == null) {
|
if (oldConstructionUser == null) {
|
||||||
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
// 判断当前操作用户是否有权限
|
// 判断当前操作用户是否有权限
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
projectService.validAuth(oldConstructionUser.getProjectId(), userId);
|
projectService.validAuth(oldConstructionUser.getProjectId(), userId);
|
||||||
BusConstructionUser constructionUser = new BusConstructionUser();
|
SubConstructionUser constructionUser = new SubConstructionUser();
|
||||||
constructionUser.setId(id);
|
constructionUser.setId(id);
|
||||||
// 修改薪水
|
// 修改薪水
|
||||||
constructionUser.setSalary(Objects.requireNonNullElse(salary, 0L));
|
constructionUser.setSalary(Objects.requireNonNullElse(salary, 0L));
|
||||||
@ -373,11 +379,11 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateClock(BusConstructionUserUpdateClockReq req) {
|
public Boolean updateClock(SubConstructionUserUpdateClockReq req) {
|
||||||
Long id = req.getId();
|
Long id = req.getId();
|
||||||
String clock = req.getClock();
|
String clock = req.getClock();
|
||||||
// 判断对应施工人员是否存在
|
// 判断对应施工人员是否存在
|
||||||
BusConstructionUser oldConstructionUser = this.getById(id);
|
SubConstructionUser oldConstructionUser = this.getById(id);
|
||||||
if (oldConstructionUser == null) {
|
if (oldConstructionUser == null) {
|
||||||
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -387,7 +393,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
if (clock.equals(oldConstructionUser.getClock())) {
|
if (clock.equals(oldConstructionUser.getClock())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
BusConstructionUser constructionUser = new BusConstructionUser();
|
SubConstructionUser constructionUser = new SubConstructionUser();
|
||||||
constructionUser.setId(id);
|
constructionUser.setId(id);
|
||||||
constructionUser.setClock(clock);
|
constructionUser.setClock(clock);
|
||||||
return this.updateById(constructionUser);
|
return this.updateById(constructionUser);
|
||||||
@ -400,10 +406,10 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean changeUserProject(BusConstructionUserChangeProjectReq req) {
|
public Boolean changeUserProject(SubConstructionUserChangeProjectReq req) {
|
||||||
Long id = req.getId();
|
Long id = req.getId();
|
||||||
// 判断对应施工人员是否存在
|
// 判断对应施工人员是否存在
|
||||||
BusConstructionUser constructionUser = this.getById(id);
|
SubConstructionUser constructionUser = this.getById(id);
|
||||||
if (constructionUser == null) {
|
if (constructionUser == null) {
|
||||||
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("施工人员信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -422,14 +428,14 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
if (req.getContractorId().equals(constructionUser.getContractorId())) {
|
if (req.getContractorId().equals(constructionUser.getContractorId())) {
|
||||||
throw new ServiceException("已在当前分包公司下,请勿重复修改", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("已在当前分包公司下,请勿重复修改", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
BusConstructionUser validUser = new BusConstructionUser();
|
SubConstructionUser validUser = new SubConstructionUser();
|
||||||
BeanUtils.copyProperties(req, validUser);
|
BeanUtils.copyProperties(req, validUser);
|
||||||
this.validEntityBeforeSave(validUser, false);
|
this.validEntityBeforeSave(validUser, false);
|
||||||
// 操作数据库,更新数据
|
// 操作数据库,更新数据
|
||||||
LambdaUpdateWrapper<BusConstructionUser> lambdaUpdate = Wrappers.lambdaUpdate(BusConstructionUser.class)
|
LambdaUpdateWrapper<SubConstructionUser> lambdaUpdate = Wrappers.lambdaUpdate(SubConstructionUser.class)
|
||||||
.eq(BusConstructionUser::getId, id)
|
.eq(SubConstructionUser::getId, id)
|
||||||
.set(BusConstructionUser::getProjectId, req.getProjectId())
|
.set(SubConstructionUser::getProjectId, req.getProjectId())
|
||||||
.set(BusConstructionUser::getContractorId, req.getContractorId());
|
.set(SubConstructionUser::getContractorId, req.getContractorId());
|
||||||
return this.update(lambdaUpdate);
|
return this.update(lambdaUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -441,14 +447,14 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean batchUpdateStatus(BusConstructionUserBatchUpdateStatusReq req) {
|
public Boolean batchUpdateStatus(SubConstructionUserBatchUpdateStatusReq req) {
|
||||||
List<Long> idList = req.getIdList();
|
List<Long> idList = req.getIdList();
|
||||||
String status = req.getStatus();
|
String status = req.getStatus();
|
||||||
// 查询对应数据是否存在
|
// 查询对应数据是否存在
|
||||||
if (CollUtil.isEmpty(idList)) {
|
if (CollUtil.isEmpty(idList)) {
|
||||||
throw new ServiceException("施工人员 id 不能为空", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("施工人员 id 不能为空", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
List<BusConstructionUser> constructionUserList = this.listByIds(idList);
|
List<SubConstructionUser> constructionUserList = this.listByIds(idList);
|
||||||
// 判断对应数据是否都存在
|
// 判断对应数据是否都存在
|
||||||
if (constructionUserList.size() != idList.size()) {
|
if (constructionUserList.size() != idList.size()) {
|
||||||
throw new ServiceException("修改施工人员状态失败,数据缺失", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("修改施工人员状态失败,数据缺失", HttpStatus.BAD_REQUEST);
|
||||||
@ -456,14 +462,14 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
// 判断当前操作用户是否有权限
|
// 判断当前操作用户是否有权限
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
List<Long> projectIdList = constructionUserList.stream()
|
List<Long> projectIdList = constructionUserList.stream()
|
||||||
.map(BusConstructionUser::getProjectId)
|
.map(SubConstructionUser::getProjectId)
|
||||||
.distinct().toList();
|
.distinct().toList();
|
||||||
projectService.validAuth(projectIdList, userId);
|
projectService.validAuth(projectIdList, userId);
|
||||||
// 批量修改
|
// 批量修改
|
||||||
List<BusConstructionUser> list = constructionUserList.stream()
|
List<SubConstructionUser> list = constructionUserList.stream()
|
||||||
.filter(user -> !status.equals(user.getStatus()))
|
.filter(user -> !status.equals(user.getStatus()))
|
||||||
.map(user -> {
|
.map(user -> {
|
||||||
BusConstructionUser constructionUser = new BusConstructionUser();
|
SubConstructionUser constructionUser = new SubConstructionUser();
|
||||||
constructionUser.setId(user.getId());
|
constructionUser.setId(user.getId());
|
||||||
constructionUser.setStatus(status);
|
constructionUser.setStatus(status);
|
||||||
return constructionUser;
|
return constructionUser;
|
||||||
@ -485,7 +491,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean batchUpdateClockByProjectId(BusConstructionUserBatchUpdateClockReq req) {
|
public Boolean batchUpdateClockByProjectId(SubConstructionUserBatchUpdateClockReq req) {
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
String clock = req.getClock();
|
String clock = req.getClock();
|
||||||
// 校验打卡状态是否为空
|
// 校验打卡状态是否为空
|
||||||
@ -503,9 +509,9 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
projectService.validAuth(projectId, userId);
|
projectService.validAuth(projectId, userId);
|
||||||
// 操作数据库,批量修改
|
// 操作数据库,批量修改
|
||||||
LambdaUpdateWrapper<BusConstructionUser> lambdaUpdate = Wrappers.lambdaUpdate(BusConstructionUser.class)
|
LambdaUpdateWrapper<SubConstructionUser> lambdaUpdate = Wrappers.lambdaUpdate(SubConstructionUser.class)
|
||||||
.eq(BusConstructionUser::getProjectId, projectId)
|
.eq(SubConstructionUser::getProjectId, projectId)
|
||||||
.set(BusConstructionUser::getClock, clock);
|
.set(SubConstructionUser::getClock, clock);
|
||||||
boolean update = this.update(lambdaUpdate);
|
boolean update = this.update(lambdaUpdate);
|
||||||
if (!update) {
|
if (!update) {
|
||||||
throw new ServiceException("修改施工人员打卡状态失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("修改施工人员打卡状态失败,数据库异常", HttpStatus.ERROR);
|
||||||
@ -516,7 +522,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(BusConstructionUser entity, Boolean create) {
|
private void validEntityBeforeSave(SubConstructionUser entity, Boolean create) {
|
||||||
// TODO 做一些数据校验,如唯一约束
|
// TODO 做一些数据校验,如唯一约束
|
||||||
// 校验项目id和对应项目是否存在
|
// 校验项目id和对应项目是否存在
|
||||||
Long projectId = entity.getProjectId();
|
Long projectId = entity.getProjectId();
|
||||||
@ -547,7 +553,7 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
if (contractorId != null) {
|
if (contractorId != null) {
|
||||||
BusContractor contractor = contractorService.getById(contractorId);
|
SubContractor contractor = contractorService.getById(contractorId);
|
||||||
if (contractor == null) {
|
if (contractor == null) {
|
||||||
throw new ServiceException("分包单位信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("分包单位信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -585,11 +591,11 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
List<BusConstructionUser> constructionUserList = this.listByIds(ids);
|
List<SubConstructionUser> constructionUserList = this.listByIds(ids);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
// 做一些业务上的校验,判断是否需要校验
|
// 做一些业务上的校验,判断是否需要校验
|
||||||
// 获取项目id列表
|
// 获取项目id列表
|
||||||
List<Long> projectIdList = constructionUserList.stream().map(BusConstructionUser::getProjectId).toList();
|
List<Long> projectIdList = constructionUserList.stream().map(SubConstructionUser::getProjectId).toList();
|
||||||
// 判断是否有权限操作对应项目下的内容
|
// 判断是否有权限操作对应项目下的内容
|
||||||
projectService.validAuth(projectIdList, userId);
|
projectService.validAuth(projectIdList, userId);
|
||||||
// 判断待删除的人员是否存在于班组
|
// 判断待删除的人员是否存在于班组
|
||||||
@ -604,8 +610,8 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
throw new ServiceException("删除施工人员信息失败,数据缺失", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("删除施工人员信息失败,数据缺失", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
// 批量删除施工人员下的文件信息
|
// 批量删除施工人员下的文件信息
|
||||||
LambdaQueryWrapper<BusConstructionUserFile> constructionUserFileLqw = Wrappers.lambdaQuery(BusConstructionUserFile.class)
|
LambdaQueryWrapper<SubConstructionUserFile> constructionUserFileLqw = Wrappers.lambdaQuery(SubConstructionUserFile.class)
|
||||||
.in(BusConstructionUserFile::getUserId, ids);
|
.in(SubConstructionUserFile::getUserId, ids);
|
||||||
boolean removeFile = constructionUserFileService.remove(constructionUserFileLqw);
|
boolean removeFile = constructionUserFileService.remove(constructionUserFileLqw);
|
||||||
if (!removeFile) {
|
if (!removeFile) {
|
||||||
throw new ServiceException("删除施工人员信息失败,施工人员文件信息删除失败", HttpStatus.ERROR);
|
throw new ServiceException("删除施工人员信息失败,施工人员文件信息删除失败", HttpStatus.ERROR);
|
||||||
@ -621,9 +627,9 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员视图对象
|
* @return 施工人员视图对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusConstructionUserVo getVo(BusConstructionUser constructionUser) {
|
public SubConstructionUserVo getVo(SubConstructionUser constructionUser) {
|
||||||
// 对象转封装类
|
// 对象转封装类
|
||||||
BusConstructionUserVo constructionUserVo = new BusConstructionUserVo();
|
SubConstructionUserVo constructionUserVo = new SubConstructionUserVo();
|
||||||
if (constructionUser == null) {
|
if (constructionUser == null) {
|
||||||
return constructionUserVo;
|
return constructionUserVo;
|
||||||
}
|
}
|
||||||
@ -666,8 +672,8 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LambdaQueryWrapper<BusConstructionUser> buildQueryWrapper(BusConstructionUserQueryReq req) {
|
public LambdaQueryWrapper<SubConstructionUser> buildQueryWrapper(SubConstructionUserQueryReq req) {
|
||||||
LambdaQueryWrapper<BusConstructionUser> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SubConstructionUser> lqw = Wrappers.lambdaQuery();
|
||||||
if (req == null) {
|
if (req == null) {
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
@ -695,40 +701,40 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
Long salary = req.getSalary();
|
Long salary = req.getSalary();
|
||||||
String remark = req.getRemark();
|
String remark = req.getRemark();
|
||||||
// 模糊查询
|
// 模糊查询
|
||||||
lqw.like(StringUtils.isNotBlank(userName), BusConstructionUser::getUserName, userName);
|
lqw.like(StringUtils.isNotBlank(userName), SubConstructionUser::getUserName, userName);
|
||||||
lqw.like(StringUtils.isNotBlank(remark), BusConstructionUser::getRemark, remark);
|
lqw.like(StringUtils.isNotBlank(remark), SubConstructionUser::getRemark, remark);
|
||||||
lqw.like(StringUtils.isNotBlank(phone), BusConstructionUser::getPhone, phone);
|
lqw.like(StringUtils.isNotBlank(phone), SubConstructionUser::getPhone, phone);
|
||||||
lqw.like(StringUtils.isNotBlank(nation), BusConstructionUser::getNation, nation);
|
lqw.like(StringUtils.isNotBlank(nation), SubConstructionUser::getNation, nation);
|
||||||
lqw.like(StringUtils.isNotBlank(sfzNumber), BusConstructionUser::getSfzNumber, sfzNumber);
|
lqw.like(StringUtils.isNotBlank(sfzNumber), SubConstructionUser::getSfzNumber, sfzNumber);
|
||||||
lqw.like(StringUtils.isNotBlank(nativePlace), BusConstructionUser::getNativePlace, nativePlace);
|
lqw.like(StringUtils.isNotBlank(nativePlace), SubConstructionUser::getNativePlace, nativePlace);
|
||||||
lqw.like(StringUtils.isNotBlank(yhkNumber), BusConstructionUser::getYhkNumber, yhkNumber);
|
lqw.like(StringUtils.isNotBlank(yhkNumber), SubConstructionUser::getYhkNumber, yhkNumber);
|
||||||
lqw.like(StringUtils.isNotBlank(yhkOpeningBank), BusConstructionUser::getYhkOpeningBank, yhkOpeningBank);
|
lqw.like(StringUtils.isNotBlank(yhkOpeningBank), SubConstructionUser::getYhkOpeningBank, yhkOpeningBank);
|
||||||
lqw.like(StringUtils.isNotBlank(yhkCardholder), BusConstructionUser::getYhkCardholder, yhkCardholder);
|
lqw.like(StringUtils.isNotBlank(yhkCardholder), SubConstructionUser::getYhkCardholder, yhkCardholder);
|
||||||
lqw.like(StringUtils.isNotBlank(teamName), BusConstructionUser::getTeamName, teamName);
|
lqw.like(StringUtils.isNotBlank(teamName), SubConstructionUser::getTeamName, teamName);
|
||||||
// 精确查询
|
// 精确查询
|
||||||
lqw.eq(StringUtils.isNotBlank(status), BusConstructionUser::getStatus, status);
|
lqw.eq(StringUtils.isNotBlank(status), SubConstructionUser::getStatus, status);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(id), BusConstructionUser::getId, id);
|
lqw.eq(ObjectUtils.isNotEmpty(id), SubConstructionUser::getId, id);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), BusConstructionUser::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubConstructionUser::getProjectId, projectId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(contractorId), BusConstructionUser::getContractorId, contractorId);
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubConstructionUser::getContractorId, contractorId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(teamId), BusConstructionUser::getTeamId, teamId);
|
lqw.eq(ObjectUtils.isNotEmpty(teamId), SubConstructionUser::getTeamId, teamId);
|
||||||
lqw.eq(StringUtils.isNotBlank(isPinch), BusConstructionUser::getIsPinch, isPinch);
|
lqw.eq(StringUtils.isNotBlank(isPinch), SubConstructionUser::getIsPinch, isPinch);
|
||||||
lqw.eq(StringUtils.isNotBlank(sex), BusConstructionUser::getSex, sex);
|
lqw.eq(StringUtils.isNotBlank(sex), SubConstructionUser::getSex, sex);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(typeOfWork), BusConstructionUser::getTypeOfWork, typeOfWork);
|
lqw.eq(ObjectUtils.isNotEmpty(typeOfWork), SubConstructionUser::getTypeOfWork, typeOfWork);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(clock), BusConstructionUser::getClock, clock);
|
lqw.eq(ObjectUtils.isNotEmpty(clock), SubConstructionUser::getClock, clock);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(salary), BusConstructionUser::getSalary, salary);
|
lqw.eq(ObjectUtils.isNotEmpty(salary), SubConstructionUser::getSalary, salary);
|
||||||
lqw.eq(StringUtils.isNotBlank(wageMeasureUnit), BusConstructionUser::getWageMeasureUnit, wageMeasureUnit);
|
lqw.eq(StringUtils.isNotBlank(wageMeasureUnit), SubConstructionUser::getWageMeasureUnit, wageMeasureUnit);
|
||||||
// 精准查询,不等于
|
// 精准查询,不等于
|
||||||
if (ObjectUtils.isNotEmpty(notTeamId)) {
|
if (ObjectUtils.isNotEmpty(notTeamId)) {
|
||||||
lqw.and(wrapper -> wrapper
|
lqw.and(wrapper -> wrapper
|
||||||
.ne(BusConstructionUser::getTeamId, notTeamId)
|
.ne(SubConstructionUser::getTeamId, notTeamId)
|
||||||
.or().isNull(BusConstructionUser::getTeamId));
|
.or().isNull(SubConstructionUser::getTeamId));
|
||||||
}
|
}
|
||||||
// 查询当前项目下的黑名单人员
|
// 查询当前项目下的黑名单人员
|
||||||
if (projectId != null) {
|
if (projectId != null) {
|
||||||
List<Long> blackUserIdList = constructionBlacklistService.queryIdListByProjectId(projectId);
|
List<Long> blackUserIdList = constructionBlacklistService.queryIdListByProjectId(projectId);
|
||||||
// 查询结果移除黑名单人员
|
// 查询结果移除黑名单人员
|
||||||
if (CollUtil.isNotEmpty(blackUserIdList)) {
|
if (CollUtil.isNotEmpty(blackUserIdList)) {
|
||||||
lqw.notIn(BusConstructionUser::getId, blackUserIdList);
|
lqw.notIn(SubConstructionUser::getId, blackUserIdList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return lqw;
|
return lqw;
|
||||||
@ -741,9 +747,9 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员分页对象视图
|
* @return 施工人员分页对象视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<BusConstructionUserVo> getVoPage(Page<BusConstructionUser> constructionUserPage) {
|
public Page<SubConstructionUserVo> getVoPage(Page<SubConstructionUser> constructionUserPage) {
|
||||||
List<BusConstructionUser> constructionUserList = constructionUserPage.getRecords();
|
List<SubConstructionUser> constructionUserList = constructionUserPage.getRecords();
|
||||||
Page<BusConstructionUserVo> constructionUserVoPage = new Page<>(
|
Page<SubConstructionUserVo> constructionUserVoPage = new Page<>(
|
||||||
constructionUserPage.getCurrent(),
|
constructionUserPage.getCurrent(),
|
||||||
constructionUserPage.getSize(),
|
constructionUserPage.getSize(),
|
||||||
constructionUserPage.getTotal());
|
constructionUserPage.getTotal());
|
||||||
@ -751,39 +757,39 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
return constructionUserVoPage;
|
return constructionUserVoPage;
|
||||||
}
|
}
|
||||||
// 关联查询分包公司信息
|
// 关联查询分包公司信息
|
||||||
Set<Long> contractorIdSet = constructionUserList.stream().map(BusConstructionUser::getContractorId)
|
Set<Long> contractorIdSet = constructionUserList.stream().map(SubConstructionUser::getContractorId)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
Map<Long, List<BusContractor>> contractorIdContractorMap = contractorService.listByIds(contractorIdSet).stream()
|
Map<Long, List<SubContractor>> contractorIdContractorMap = contractorService.listByIds(contractorIdSet).stream()
|
||||||
.collect(Collectors.groupingBy(BusContractor::getId));
|
.collect(Collectors.groupingBy(SubContractor::getId));
|
||||||
// 关联查询工资标准
|
// 关联查询工资标准
|
||||||
LambdaQueryWrapper<BusWorkWage> workWageLqw = Wrappers.lambdaQuery(BusWorkWage.class)
|
LambdaQueryWrapper<BusWorkWage> workWageLqw = Wrappers.lambdaQuery(BusWorkWage.class)
|
||||||
.in(BusWorkWage::getProjectId, constructionUserList.stream().map(BusConstructionUser::getProjectId).toList())
|
.in(BusWorkWage::getProjectId, constructionUserList.stream().map(SubConstructionUser::getProjectId).toList())
|
||||||
.in(BusWorkWage::getWorkType, constructionUserList.stream().map(BusConstructionUser::getTypeOfWork).toList())
|
.in(BusWorkWage::getWorkType, constructionUserList.stream().map(SubConstructionUser::getTypeOfWork).toList())
|
||||||
.in(BusWorkWage::getWageMeasureUnit, constructionUserList.stream().map(BusConstructionUser::getWageMeasureUnit).toList());
|
.in(BusWorkWage::getWageMeasureUnit, constructionUserList.stream().map(SubConstructionUser::getWageMeasureUnit).toList());
|
||||||
Map<String, Long> workWageMap = workWageService.list(workWageLqw).stream().collect(Collectors.toMap(
|
Map<String, Long> workWageMap = workWageService.list(workWageLqw).stream().collect(Collectors.toMap(
|
||||||
workWage -> workWage.getWorkType() + "_" + workWage.getWageMeasureUnit(),
|
workWage -> workWage.getWorkType() + "_" + workWage.getWageMeasureUnit(),
|
||||||
BusWorkWage::getWage,
|
BusWorkWage::getWage,
|
||||||
(wage1, wage2) -> wage1
|
(wage1, wage2) -> wage1
|
||||||
));
|
));
|
||||||
int fileTypeSize = dictTypeService.selectDictDataByType(BusConstructionUserConstant.USER_FILE_TYPE).size();
|
int fileTypeSize = dictTypeService.selectDictDataByType(SubConstructionUserConstant.USER_FILE_TYPE).size();
|
||||||
// 获取用户上传文件数量信息
|
// 获取用户上传文件数量信息
|
||||||
List<Long> userIdList = constructionUserList.stream().map(BusConstructionUser::getId).toList();
|
List<Long> userIdList = constructionUserList.stream().map(SubConstructionUser::getId).toList();
|
||||||
List<BusConstructionUserFile> fileList = constructionUserFileService.lambdaQuery()
|
List<SubConstructionUserFile> fileList = constructionUserFileService.lambdaQuery()
|
||||||
.select(BusConstructionUserFile::getId, BusConstructionUserFile::getUserId)
|
.select(SubConstructionUserFile::getId, SubConstructionUserFile::getUserId)
|
||||||
.in(BusConstructionUserFile::getUserId, userIdList)
|
.in(SubConstructionUserFile::getUserId, userIdList)
|
||||||
.list();
|
.list();
|
||||||
Map<Long, Long> fileCountMap = fileList.stream()
|
Map<Long, Long> fileCountMap = fileList.stream()
|
||||||
.collect(Collectors.groupingBy(
|
.collect(Collectors.groupingBy(
|
||||||
BusConstructionUserFile::getUserId,
|
SubConstructionUserFile::getUserId,
|
||||||
Collectors.counting()
|
Collectors.counting()
|
||||||
));
|
));
|
||||||
// 填充信息
|
// 填充信息
|
||||||
List<BusConstructionUserVo> constructionUserVoList = constructionUserList.stream().map(constructionUser -> {
|
List<SubConstructionUserVo> constructionUserVoList = constructionUserList.stream().map(constructionUser -> {
|
||||||
BusConstructionUserVo constructionUserVo = new BusConstructionUserVo();
|
SubConstructionUserVo constructionUserVo = new SubConstructionUserVo();
|
||||||
BeanUtils.copyProperties(constructionUser, constructionUserVo);
|
BeanUtils.copyProperties(constructionUser, constructionUserVo);
|
||||||
// 关联分包公司信息
|
// 关联分包公司信息
|
||||||
Long contractorId = constructionUser.getContractorId();
|
Long contractorId = constructionUser.getContractorId();
|
||||||
BusContractorVo contractor = null;
|
SubContractorVo contractor = null;
|
||||||
if (contractorIdContractorMap.containsKey(contractorId)) {
|
if (contractorIdContractorMap.containsKey(contractorId)) {
|
||||||
contractor = contractorService.getVo(contractorIdContractorMap.get(contractorId).getFirst());
|
contractor = contractorService.getVo(contractorIdContractorMap.get(contractorId).getFirst());
|
||||||
}
|
}
|
||||||
@ -798,11 +804,11 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
// 关联施工人员文件上传状态
|
// 关联施工人员文件上传状态
|
||||||
long count = fileCountMap.getOrDefault(constructionUser.getId(), 0L);
|
long count = fileCountMap.getOrDefault(constructionUser.getId(), 0L);
|
||||||
if (count <= 0) {
|
if (count <= 0) {
|
||||||
constructionUserVo.setFileUploadStatus(BusConstructionUserFileStatusEnum.NOUPLOAD.getValue());
|
constructionUserVo.setFileUploadStatus(SubConstructionUserFileStatusEnum.NOUPLOAD.getValue());
|
||||||
} else if (count < fileTypeSize) {
|
} else if (count < fileTypeSize) {
|
||||||
constructionUserVo.setFileUploadStatus(BusConstructionUserFileStatusEnum.PARTUPLOAD.getValue());
|
constructionUserVo.setFileUploadStatus(SubConstructionUserFileStatusEnum.PARTUPLOAD.getValue());
|
||||||
} else if (count == fileTypeSize) {
|
} else if (count == fileTypeSize) {
|
||||||
constructionUserVo.setFileUploadStatus(BusConstructionUserFileStatusEnum.UPLOAD.getValue());
|
constructionUserVo.setFileUploadStatus(SubConstructionUserFileStatusEnum.UPLOAD.getValue());
|
||||||
}
|
}
|
||||||
// 解密身份证号码
|
// 解密身份证号码
|
||||||
String decrypt = idCardEncryptorUtil.decrypt(constructionUserVo.getSfzNumber());
|
String decrypt = idCardEncryptorUtil.decrypt(constructionUserVo.getSfzNumber());
|
||||||
@ -821,9 +827,9 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
* @return 施工人员考勤分页对象视图
|
* @return 施工人员考勤分页对象视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<BusConstructionUserAttendanceTotalVo> getAttendanceTotalVoPage(BusConstructionUserAttendanceQueryReq req,
|
public Page<SubConstructionUserAttendanceTotalVo> getAttendanceTotalVoPage(SubConstructionUserAttendanceQueryReq req,
|
||||||
PageQuery pageQuery) {
|
PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<BusConstructionUser> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SubConstructionUser> lqw = Wrappers.lambdaQuery();
|
||||||
// 从对象中取值
|
// 从对象中取值
|
||||||
String userName = req.getUserName();
|
String userName = req.getUserName();
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
@ -852,25 +858,25 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
List<Long> userIdList = attendanceService.list(attendanceLqw)
|
List<Long> userIdList = attendanceService.list(attendanceLqw)
|
||||||
.stream().map(BusAttendance::getUserId).toList();
|
.stream().map(BusAttendance::getUserId).toList();
|
||||||
if (CollUtil.isNotEmpty(userIdList)) {
|
if (CollUtil.isNotEmpty(userIdList)) {
|
||||||
lqw.in(BusConstructionUser::getId, userIdList);
|
lqw.in(SubConstructionUser::getId, userIdList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 模糊查询
|
// 模糊查询
|
||||||
lqw.like(StringUtils.isNotBlank(userName), BusConstructionUser::getUserName, userName);
|
lqw.like(StringUtils.isNotBlank(userName), SubConstructionUser::getUserName, userName);
|
||||||
// 精确查询
|
// 精确查询
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), BusConstructionUser::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubConstructionUser::getProjectId, projectId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(teamId), BusConstructionUser::getTeamId, teamId);
|
lqw.eq(ObjectUtils.isNotEmpty(teamId), SubConstructionUser::getTeamId, teamId);
|
||||||
lqw.eq(StringUtils.isNotBlank(typeOfWork), BusConstructionUser::getTypeOfWork, typeOfWork);
|
lqw.eq(StringUtils.isNotBlank(typeOfWork), SubConstructionUser::getTypeOfWork, typeOfWork);
|
||||||
// 查询当前项目下的黑名单人员
|
// 查询当前项目下的黑名单人员
|
||||||
List<Long> blackUserIdList = constructionBlacklistService.queryIdListByProjectId(projectId);
|
List<Long> blackUserIdList = constructionBlacklistService.queryIdListByProjectId(projectId);
|
||||||
// 查询结果移除黑名单人员
|
// 查询结果移除黑名单人员
|
||||||
if (CollUtil.isNotEmpty(blackUserIdList)) {
|
if (CollUtil.isNotEmpty(blackUserIdList)) {
|
||||||
lqw.notIn(BusConstructionUser::getId, blackUserIdList);
|
lqw.notIn(SubConstructionUser::getId, blackUserIdList);
|
||||||
}
|
}
|
||||||
// 分页查询获取数据
|
// 分页查询获取数据
|
||||||
Page<BusConstructionUser> constructionUserPage = this.page(pageQuery.build(), lqw);
|
Page<SubConstructionUser> constructionUserPage = this.page(pageQuery.build(), lqw);
|
||||||
List<BusConstructionUser> constructionUserList = constructionUserPage.getRecords();
|
List<SubConstructionUser> constructionUserList = constructionUserPage.getRecords();
|
||||||
Page<BusConstructionUserAttendanceTotalVo> constructionUserAttendanceTotalPage = new Page<>(
|
Page<SubConstructionUserAttendanceTotalVo> constructionUserAttendanceTotalPage = new Page<>(
|
||||||
constructionUserPage.getCurrent(),
|
constructionUserPage.getCurrent(),
|
||||||
constructionUserPage.getSize(),
|
constructionUserPage.getSize(),
|
||||||
constructionUserPage.getTotal());
|
constructionUserPage.getTotal());
|
||||||
@ -878,14 +884,14 @@ public class BusConstructionUserServiceImpl extends ServiceImpl<BusConstructionU
|
|||||||
return constructionUserAttendanceTotalPage;
|
return constructionUserAttendanceTotalPage;
|
||||||
}
|
}
|
||||||
// 获取施工人员id列表
|
// 获取施工人员id列表
|
||||||
List<Long> userIdList = constructionUserList.stream().map(BusConstructionUser::getId).toList();
|
List<Long> userIdList = constructionUserList.stream().map(SubConstructionUser::getId).toList();
|
||||||
// 关联查询施工人员考勤列表
|
// 关联查询施工人员考勤列表
|
||||||
attendanceLqw.in(BusAttendance::getUserId, userIdList);
|
attendanceLqw.in(BusAttendance::getUserId, userIdList);
|
||||||
Map<Long, List<BusAttendance>> userIdBusAttendanceListMap = attendanceService.list(attendanceLqw)
|
Map<Long, List<BusAttendance>> userIdBusAttendanceListMap = attendanceService.list(attendanceLqw)
|
||||||
.stream().collect(Collectors.groupingBy(BusAttendance::getUserId));
|
.stream().collect(Collectors.groupingBy(BusAttendance::getUserId));
|
||||||
// 填充信息
|
// 填充信息
|
||||||
List<BusConstructionUserAttendanceTotalVo> userAttendanceTotalList = constructionUserList.stream().map(constructionUser -> {
|
List<SubConstructionUserAttendanceTotalVo> userAttendanceTotalList = constructionUserList.stream().map(constructionUser -> {
|
||||||
BusConstructionUserAttendanceTotalVo constructionUserAttendanceTotalResp = new BusConstructionUserAttendanceTotalVo();
|
SubConstructionUserAttendanceTotalVo constructionUserAttendanceTotalResp = new SubConstructionUserAttendanceTotalVo();
|
||||||
Long id = constructionUser.getId();
|
Long id = constructionUser.getId();
|
||||||
BeanUtils.copyProperties(constructionUser, constructionUserAttendanceTotalResp);
|
BeanUtils.copyProperties(constructionUser, constructionUserAttendanceTotalResp);
|
||||||
// 关联施工人员考勤信息
|
// 关联施工人员考勤信息
|
@ -0,0 +1,302 @@
|
|||||||
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.dromara.common.core.constant.HttpStatus;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.ObjectUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterial;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterialRecord;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterialrecord.SubContractorMaterialRecordUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.enums.SubContractorRecordEnum;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterialrecord.SubContractorMaterialRecordVo;
|
||||||
|
import org.dromara.contractor.mapper.SubContractorMaterialRecordMapper;
|
||||||
|
import org.dromara.contractor.service.ISubContractorMaterialRecordService;
|
||||||
|
import org.dromara.contractor.service.ISubContractorMaterialService;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
|
import org.dromara.project.service.IBusProjectService;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料记录Service业务层处理
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SubContractorMaterialRecordServiceImpl extends ServiceImpl<SubContractorMaterialRecordMapper, SubContractorMaterialRecord>
|
||||||
|
implements ISubContractorMaterialRecordService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISubContractorMaterialService contractorMaterialService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询分包方物料记录
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 分包方物料记录
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public SubContractorMaterialRecordVo queryById(Long id) {
|
||||||
|
SubContractorMaterialRecord entity = this.getById(id);
|
||||||
|
if (entity == null) {
|
||||||
|
throw new ServiceException("分包方物料记录信息不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
return this.getVo(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询分包方物料记录列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 分包方物料记录分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<SubContractorMaterialRecordVo> queryPageList(SubContractorMaterialRecordQueryReq req, PageQuery pageQuery) {
|
||||||
|
Page<SubContractorMaterialRecord> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
||||||
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的分包方物料记录列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @return 分包方物料记录列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<SubContractorMaterialRecordVo> queryList(SubContractorMaterialRecordQueryReq req) {
|
||||||
|
LambdaQueryWrapper<SubContractorMaterialRecord> lqw = buildQueryWrapper(req);
|
||||||
|
return this.list(lqw).stream().map(this::getVo).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增分包方物料记录
|
||||||
|
*
|
||||||
|
* @param req 分包方物料记录
|
||||||
|
* @return 新增分包方物料记录主键id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Long insertByBo(SubContractorMaterialRecordCreateReq req) {
|
||||||
|
SubContractorMaterialRecord entry = new SubContractorMaterialRecord();
|
||||||
|
BeanUtils.copyProperties(req, entry);
|
||||||
|
Long contractorMaterialId = req.getContractorMaterialId();
|
||||||
|
if (contractorMaterialId == null) {
|
||||||
|
throw new ServiceException("物料id不能为空", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
SubContractorMaterial contractorMaterial = contractorMaterialService.getById(contractorMaterialId);
|
||||||
|
if (contractorMaterial == null) {
|
||||||
|
throw new ServiceException("分包方物料不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
// 填充默认值
|
||||||
|
entry.setProjectId(contractorMaterial.getProjectId());
|
||||||
|
entry.setContractorId(contractorMaterial.getContractorId());
|
||||||
|
String recordType = req.getRecordType();
|
||||||
|
BigDecimal recordNumber = req.getRecordNumber();
|
||||||
|
// 同步更新工具数量
|
||||||
|
BigDecimal number = this.computeRemainingMaterialNumber(contractorMaterial, recordType, recordNumber);
|
||||||
|
entry.setRemainingNumber(number);
|
||||||
|
boolean save = this.save(entry);
|
||||||
|
if (!save) {
|
||||||
|
throw new ServiceException("保存分包方物料记录失败", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
return entry.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改分包方物料记录
|
||||||
|
*
|
||||||
|
* @param req 分包方物料记录
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Boolean updateByBo(SubContractorMaterialRecordUpdateReq req) {
|
||||||
|
SubContractorMaterialRecord entry = new SubContractorMaterialRecord();
|
||||||
|
BeanUtils.copyProperties(req, entry);
|
||||||
|
SubContractorMaterialRecord contractorMaterialEntry = this.getById(entry.getId());
|
||||||
|
if (contractorMaterialEntry == null) {
|
||||||
|
throw new ServiceException("修改分包方物料记录失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
SubContractorMaterial contractorMaterial = contractorMaterialService.getById(contractorMaterialEntry.getContractorMaterialId());
|
||||||
|
if (contractorMaterial == null) {
|
||||||
|
throw new ServiceException("分包方物料不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
String recordType = contractorMaterialEntry.getRecordType();
|
||||||
|
BigDecimal recordNumber = req.getRecordNumber();
|
||||||
|
// 同步更新工具数量
|
||||||
|
BigDecimal number = this.computeRemainingMaterialNumber(contractorMaterial, recordType, recordNumber);
|
||||||
|
entry.setRemainingNumber(number);
|
||||||
|
boolean result = this.updateById(entry);
|
||||||
|
if (!result) {
|
||||||
|
throw new ServiceException("修改分包方物料记录失败", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除分包方物料记录信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
List<SubContractorMaterialRecord> list = this.listByIds(ids);
|
||||||
|
if (isValid) {
|
||||||
|
List<Long> projectIdList = list.stream().map(SubContractorMaterialRecord::getProjectId).toList();
|
||||||
|
projectService.validAuth(projectIdList, userId);
|
||||||
|
}
|
||||||
|
return this.removeBatchByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录视图对象
|
||||||
|
*
|
||||||
|
* @param contractorMaterialRecord 分包方物料记录对象
|
||||||
|
* @return 分包方物料记录视图对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public SubContractorMaterialRecordVo getVo(SubContractorMaterialRecord contractorMaterialRecord) {
|
||||||
|
SubContractorMaterialRecordVo vo = new SubContractorMaterialRecordVo();
|
||||||
|
if (contractorMaterialRecord == null) {
|
||||||
|
throw new ServiceException("数据不存在");
|
||||||
|
}
|
||||||
|
BeanUtils.copyProperties(contractorMaterialRecord, vo);
|
||||||
|
SubContractorMaterial contractorMaterial = contractorMaterialService.getById(vo.getContractorMaterialId());
|
||||||
|
if (contractorMaterial != null) {
|
||||||
|
vo.setContractorMaterialName(contractorMaterial.getMaterialName());
|
||||||
|
}
|
||||||
|
SubContractor contractor = contractorService.getById(vo.getContractorId());
|
||||||
|
if (contractor != null) {
|
||||||
|
vo.setContractorName(contractor.getName());
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录查询条件封装
|
||||||
|
*
|
||||||
|
* @param req 分包方物料记录查询条件
|
||||||
|
* @return 分包方物料记录查询条件封装
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public LambdaQueryWrapper<SubContractorMaterialRecord> buildQueryWrapper(SubContractorMaterialRecordQueryReq req) {
|
||||||
|
LambdaQueryWrapper<SubContractorMaterialRecord> lqw = new LambdaQueryWrapper<>();
|
||||||
|
if (req == null) {
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
Long projectId = req.getProjectId();
|
||||||
|
Long contractorId = req.getContractorId();
|
||||||
|
Long contractorMaterialId = req.getContractorMaterialId();
|
||||||
|
String recordType = req.getRecordType();
|
||||||
|
String usedPosition = req.getUsedPosition();
|
||||||
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubContractorMaterialRecord::getProjectId, projectId);
|
||||||
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubContractorMaterialRecord::getContractorId, contractorId);
|
||||||
|
lqw.eq(ObjectUtils.isNotEmpty(contractorMaterialId), SubContractorMaterialRecord::getContractorMaterialId, contractorMaterialId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(recordType), SubContractorMaterialRecord::getRecordType, recordType);
|
||||||
|
lqw.like(StringUtils.isNotBlank(usedPosition), SubContractorMaterialRecord::getUsedPosition, usedPosition);
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料记录分页对象视图
|
||||||
|
*
|
||||||
|
* @param contractorMaterialRecordPage 分包方物料记录分页对象
|
||||||
|
* @return 分包方物料记录分页对象视图
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Page<SubContractorMaterialRecordVo> getVoPage(Page<SubContractorMaterialRecord> contractorMaterialRecordPage) {
|
||||||
|
List<SubContractorMaterialRecord> contractorMaterialEntryList = contractorMaterialRecordPage.getRecords();
|
||||||
|
Page<SubContractorMaterialRecordVo> contractorMaterialEntryVoPage = new Page<>(
|
||||||
|
contractorMaterialRecordPage.getCurrent(),
|
||||||
|
contractorMaterialRecordPage.getSize(),
|
||||||
|
contractorMaterialRecordPage.getTotal());
|
||||||
|
if (CollUtil.isEmpty(contractorMaterialEntryList)) {
|
||||||
|
return contractorMaterialEntryVoPage;
|
||||||
|
}
|
||||||
|
Set<Long> contractorIdList = contractorMaterialEntryList.stream().map(SubContractorMaterialRecord::getContractorId).collect(Collectors.toSet());
|
||||||
|
Map<Long, SubContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
||||||
|
.stream().collect(Collectors.toMap(SubContractor::getId, v -> v));
|
||||||
|
Set<Long> contractorMaterialIdList = contractorMaterialEntryList.stream().map(SubContractorMaterialRecord::getContractorMaterialId).collect(Collectors.toSet());
|
||||||
|
Map<Long, SubContractorMaterial> contractorMaterialMap = contractorMaterialService.listByIds(contractorMaterialIdList)
|
||||||
|
.stream().collect(Collectors.toMap(SubContractorMaterial::getId, v -> v));
|
||||||
|
List<SubContractorMaterialRecordVo> contractorMaterialEntryVoList = contractorMaterialEntryList.stream().map(entity -> {
|
||||||
|
SubContractorMaterialRecordVo vo = new SubContractorMaterialRecordVo();
|
||||||
|
BeanUtils.copyProperties(entity, vo);
|
||||||
|
if (contractorMaterialMap.containsKey(entity.getContractorMaterialId())) {
|
||||||
|
vo.setContractorMaterialName(contractorMaterialMap.get(entity.getContractorMaterialId()).getMaterialName());
|
||||||
|
}
|
||||||
|
if (contractorMap.containsKey(entity.getContractorId())) {
|
||||||
|
vo.setContractorName(contractorMap.get(entity.getContractorId()).getName());
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}).toList();
|
||||||
|
contractorMaterialEntryVoPage.setRecords(contractorMaterialEntryVoList);
|
||||||
|
return contractorMaterialEntryVoPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算剩余库存并更新库存对象返回剩余数量
|
||||||
|
*
|
||||||
|
* @param contractorMaterial 当前库存工具
|
||||||
|
* @param recordType 操作类型(入库/出库)
|
||||||
|
* @param recordNumber 本次操作数量
|
||||||
|
* @return 剩余数量
|
||||||
|
*/
|
||||||
|
private BigDecimal computeRemainingMaterialNumber(SubContractorMaterial contractorMaterial, String recordType, BigDecimal recordNumber) {
|
||||||
|
if (recordNumber == null) {
|
||||||
|
throw new ServiceException("物料数量不能为空", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
BigDecimal materialNumber = contractorMaterial.getMaterialNumber();
|
||||||
|
SubContractorMaterial newContractorMaterial = new SubContractorMaterial();
|
||||||
|
newContractorMaterial.setId(contractorMaterial.getId());
|
||||||
|
BigDecimal result;
|
||||||
|
if (SubContractorRecordEnum.PUT.getValue().equals(recordType)) {
|
||||||
|
result = materialNumber.add(recordNumber);
|
||||||
|
} else if (SubContractorRecordEnum.OUT.getValue().equals(recordType)) {
|
||||||
|
result = materialNumber.subtract(recordNumber);
|
||||||
|
if (result.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
throw new ServiceException("出库数量不能大于库存数量", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new ServiceException("分包方物料记录类型错误", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
newContractorMaterial.setMaterialNumber(result);
|
||||||
|
boolean update = contractorMaterialService.updateById(newContractorMaterial);
|
||||||
|
if (!update) {
|
||||||
|
throw new ServiceException("更新分包方物料信息异常", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,246 @@
|
|||||||
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.dromara.common.core.constant.HttpStatus;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.ObjectUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.SubContractorMaterial;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractormaterial.SubContractorMaterialUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.contractormaterial.SubContractorMaterialVo;
|
||||||
|
import org.dromara.contractor.mapper.SubContractorMaterialMapper;
|
||||||
|
import org.dromara.contractor.service.ISubContractorMaterialService;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
|
import org.dromara.project.service.IBusProjectService;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包方物料Service业务层处理
|
||||||
|
*
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025-06-27
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SubContractorMaterialServiceImpl extends ServiceImpl<SubContractorMaterialMapper, SubContractorMaterial>
|
||||||
|
implements ISubContractorMaterialService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询分包方物料
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 分包方物料
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public SubContractorMaterialVo queryById(Long id) {
|
||||||
|
SubContractorMaterial contractorMaterial = this.getById(id);
|
||||||
|
if (contractorMaterial == null) {
|
||||||
|
throw new ServiceException("分包方物料信息不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
return this.getVo(contractorMaterial);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询分包方物料列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 分包方物料分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<SubContractorMaterialVo> queryPageList(SubContractorMaterialQueryReq req, PageQuery pageQuery) {
|
||||||
|
Page<SubContractorMaterial> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
||||||
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的分包方物料列表
|
||||||
|
*
|
||||||
|
* @param req 查询条件
|
||||||
|
* @return 分包方物料列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<SubContractorMaterialVo> queryList(SubContractorMaterialQueryReq req) {
|
||||||
|
LambdaQueryWrapper<SubContractorMaterial> lqw = this.buildQueryWrapper(req);
|
||||||
|
return this.list(lqw).stream().map(this::getVo).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增分包方物料
|
||||||
|
*
|
||||||
|
* @param req 分包方物料
|
||||||
|
* @return 新增分包物料主键id
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long insertByBo(SubContractorMaterialCreateReq req) {
|
||||||
|
SubContractorMaterial contractorMaterial = new SubContractorMaterial();
|
||||||
|
BeanUtils.copyProperties(req, contractorMaterial);
|
||||||
|
validEntityBeforeSave(contractorMaterial, true);
|
||||||
|
boolean result = this.save(contractorMaterial);
|
||||||
|
if (!result) {
|
||||||
|
throw new ServiceException("分包方物料新增失败", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
return contractorMaterial.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改分包方物料
|
||||||
|
*
|
||||||
|
* @param req 分包方物料
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(SubContractorMaterialUpdateReq req) {
|
||||||
|
Long id = req.getId();
|
||||||
|
SubContractorMaterial oldContractorMaterial = this.getById(id);
|
||||||
|
if (oldContractorMaterial == null) {
|
||||||
|
throw new ServiceException("修改分包方物料失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
SubContractorMaterial contractorMaterial = new SubContractorMaterial();
|
||||||
|
BeanUtils.copyProperties(req, contractorMaterial);
|
||||||
|
validEntityBeforeSave(contractorMaterial, false);
|
||||||
|
boolean result = this.updateById(contractorMaterial);
|
||||||
|
if (!result) {
|
||||||
|
throw new ServiceException("修改分包方物料失败", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(SubContractorMaterial entity, Boolean create) {
|
||||||
|
Long projectId = entity.getProjectId();
|
||||||
|
Long contractorId = entity.getContractorId();
|
||||||
|
if (create) {
|
||||||
|
if (projectId == null) {
|
||||||
|
throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
if (contractorId == null) {
|
||||||
|
throw new ServiceException("合同方 id 不能为空", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (projectId != null && projectService.getById(projectId) == null) {
|
||||||
|
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
if (contractorId != null && contractorService.getById(contractorId) == null) {
|
||||||
|
throw new ServiceException("对应分包方不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除分包方物料信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
List<SubContractorMaterial> contractorMaterialList = this.listByIds(ids);
|
||||||
|
if (isValid) {
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
List<Long> projectIdList = contractorMaterialList.stream().map(SubContractorMaterial::getProjectId).distinct().toList();
|
||||||
|
projectService.validAuth(projectIdList, userId);
|
||||||
|
}
|
||||||
|
return this.removeBatchByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料视图对象
|
||||||
|
*
|
||||||
|
* @param contractorMaterial 分包方物料对象
|
||||||
|
* @return 分包方物料视图对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public SubContractorMaterialVo getVo(SubContractorMaterial contractorMaterial) {
|
||||||
|
SubContractorMaterialVo contractorMaterialVo = new SubContractorMaterialVo();
|
||||||
|
if (contractorMaterial == null) {
|
||||||
|
return contractorMaterialVo;
|
||||||
|
}
|
||||||
|
BeanUtils.copyProperties(contractorMaterial, contractorMaterialVo);
|
||||||
|
Long contractorId = contractorMaterial.getContractorId();
|
||||||
|
SubContractor contractor = contractorService.getById(contractorId);
|
||||||
|
contractorMaterialVo.setContractorName(contractor.getName());
|
||||||
|
return contractorMaterialVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料查询条件封装
|
||||||
|
*
|
||||||
|
* @param req 分包方物料查询条件
|
||||||
|
* @return 分包方物料查询条件封装
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public LambdaQueryWrapper<SubContractorMaterial> buildQueryWrapper(SubContractorMaterialQueryReq req) {
|
||||||
|
LambdaQueryWrapper<SubContractorMaterial> lqw = new LambdaQueryWrapper<>();
|
||||||
|
Long projectId = req.getProjectId();
|
||||||
|
Long contractorId = req.getContractorId();
|
||||||
|
String materialName = req.getMaterialName();
|
||||||
|
String materialType = req.getMaterialType();
|
||||||
|
String materialModel = req.getMaterialModel();
|
||||||
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubContractorMaterial::getProjectId, projectId);
|
||||||
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubContractorMaterial::getContractorId, contractorId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(materialType), SubContractorMaterial::getMaterialModel, materialType);
|
||||||
|
lqw.like(StringUtils.isNotBlank(materialName), SubContractorMaterial::getMaterialName, materialName);
|
||||||
|
lqw.like(StringUtils.isNotBlank(materialModel), SubContractorMaterial::getMaterialModel, materialModel);
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包方物料分页对象视图
|
||||||
|
*
|
||||||
|
* @param contractorPage 分包方物料分页对象
|
||||||
|
* @return 分包方物料分页对象视图
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Page<SubContractorMaterialVo> getVoPage(Page<SubContractorMaterial> contractorPage) {
|
||||||
|
List<SubContractorMaterial> contractorMaterialList = contractorPage.getRecords();
|
||||||
|
Page<SubContractorMaterialVo> contractorMaterialVoPage = new Page<>(
|
||||||
|
contractorPage.getCurrent(),
|
||||||
|
contractorPage.getSize(),
|
||||||
|
contractorPage.getTotal());
|
||||||
|
if (CollUtil.isEmpty(contractorMaterialList)) {
|
||||||
|
return contractorMaterialVoPage;
|
||||||
|
}
|
||||||
|
Set<Long> contractorIdList = contractorMaterialList.stream().map(SubContractorMaterial::getContractorId).collect(Collectors.toSet());
|
||||||
|
Map<Long, SubContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
||||||
|
.stream().collect(Collectors.toMap(SubContractor::getId, v -> v));
|
||||||
|
List<SubContractorMaterialVo> contractorMaterialVoList = contractorMaterialList.stream().map(contractorMaterial -> {
|
||||||
|
SubContractorMaterialVo contractorMaterialVo = new SubContractorMaterialVo();
|
||||||
|
BeanUtils.copyProperties(contractorMaterial, contractorMaterialVo);
|
||||||
|
Long contractorId = contractorMaterial.getContractorId();
|
||||||
|
if (contractorMap.containsKey(contractorId)) {
|
||||||
|
contractorMaterialVo.setContractorName(contractorMap.get(contractorId).getName());
|
||||||
|
}
|
||||||
|
return contractorMaterialVo;
|
||||||
|
}).toList();
|
||||||
|
contractorMaterialVoPage.setRecords(contractorMaterialVoList);
|
||||||
|
return contractorMaterialVoPage;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.service.impl;
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.PhoneUtil;
|
import cn.hutool.core.util.PhoneUtil;
|
||||||
@ -16,16 +16,16 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.project.domain.BusContractor;
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.dto.contractor.SubContractorCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractor.SubContractorQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.contractor.SubContractorUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||||
|
import org.dromara.contractor.mapper.SubContractorMapper;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
import org.dromara.project.domain.BusProject;
|
import org.dromara.project.domain.BusProject;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorCreateReq;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorQueryReq;
|
|
||||||
import org.dromara.project.domain.dto.contractor.BusContractorUpdateReq;
|
|
||||||
import org.dromara.project.domain.vo.contractor.BusContractorVo;
|
|
||||||
import org.dromara.project.mapper.BusContractorMapper;
|
|
||||||
import org.dromara.project.service.IBusConstructionUserService;
|
|
||||||
import org.dromara.project.service.IBusContractorService;
|
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.dromara.system.domain.bo.SysDeptBo;
|
import org.dromara.system.domain.bo.SysDeptBo;
|
||||||
import org.dromara.system.service.ISysDeptService;
|
import org.dromara.system.service.ISysDeptService;
|
||||||
@ -46,11 +46,11 @@ import java.util.Map;
|
|||||||
* @date 2025-03-07
|
* @date 2025-03-07
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, BusContractor>
|
public class SubContractorServiceImpl extends ServiceImpl<SubContractorMapper, SubContractor>
|
||||||
implements IBusContractorService {
|
implements ISubContractorService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
@ -68,8 +68,8 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 分包单位
|
* @return 分包单位
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusContractorVo queryById(Long id) {
|
public SubContractorVo queryById(Long id) {
|
||||||
BusContractor contractor = this.getById(id);
|
SubContractor contractor = this.getById(id);
|
||||||
if (contractor == null) {
|
if (contractor == null) {
|
||||||
throw new ServiceException("分包单位信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("分包单位信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -84,9 +84,9 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 分包单位分页列表
|
* @return 分包单位分页列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<BusContractorVo> queryPageList(BusContractorQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubContractorVo> queryPageList(SubContractorQueryReq req, PageQuery pageQuery) {
|
||||||
// 查询数据库
|
// 查询数据库
|
||||||
Page<BusContractor> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
Page<SubContractor> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
||||||
return TableDataInfo.build(this.getVoPage(result));
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,9 +97,9 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 分包单位列表
|
* @return 分包单位列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusContractorVo> queryList(BusContractorQueryReq req) {
|
public List<SubContractorVo> queryList(SubContractorQueryReq req) {
|
||||||
LambdaQueryWrapper<BusContractor> lqw = this.buildQueryWrapper(req);
|
LambdaQueryWrapper<SubContractor> lqw = this.buildQueryWrapper(req);
|
||||||
List<BusContractor> list = this.list(lqw);
|
List<SubContractor> list = this.list(lqw);
|
||||||
return list.stream().map(this::getVo).toList();
|
return list.stream().map(this::getVo).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,9 +111,9 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long insertByBo(BusContractorCreateReq req) {
|
public Long insertByBo(SubContractorCreateReq req) {
|
||||||
// 将实体类和 DTO 进行转换
|
// 将实体类和 DTO 进行转换
|
||||||
BusContractor contractor = new BusContractor();
|
SubContractor contractor = new SubContractor();
|
||||||
BeanUtils.copyProperties(req, contractor);
|
BeanUtils.copyProperties(req, contractor);
|
||||||
// 数据转换
|
// 数据转换
|
||||||
Map<String, Long> fileMap = req.getFileMap();
|
Map<String, Long> fileMap = req.getFileMap();
|
||||||
@ -122,7 +122,7 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
// 数据校验
|
// 数据校验
|
||||||
validEntityBeforeSave(contractor, true);
|
validEntityBeforeSave(contractor, true);
|
||||||
String name = req.getName();
|
String name = req.getName();
|
||||||
Long count = this.lambdaQuery().eq(BusContractor::getName, name).count();
|
Long count = this.lambdaQuery().eq(SubContractor::getName, name).count();
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
@ -166,9 +166,9 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(BusContractorUpdateReq req) {
|
public Boolean updateByBo(SubContractorUpdateReq req) {
|
||||||
// 将实体类和 DTO 进行转换
|
// 将实体类和 DTO 进行转换
|
||||||
BusContractor contractor = new BusContractor();
|
SubContractor contractor = new SubContractor();
|
||||||
BeanUtils.copyProperties(req, contractor);
|
BeanUtils.copyProperties(req, contractor);
|
||||||
// 数据转换
|
// 数据转换
|
||||||
Map<String, Long> fileMap = req.getFileMap();
|
Map<String, Long> fileMap = req.getFileMap();
|
||||||
@ -177,13 +177,13 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
// 数据校验
|
// 数据校验
|
||||||
validEntityBeforeSave(contractor, false);
|
validEntityBeforeSave(contractor, false);
|
||||||
// 判断是否存在
|
// 判断是否存在
|
||||||
BusContractor oldContractor = this.getById(contractor.getId());
|
SubContractor oldContractor = this.getById(contractor.getId());
|
||||||
if (oldContractor == null) {
|
if (oldContractor == null) {
|
||||||
throw new ServiceException("修改施工人员失败,数据不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("修改施工人员失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
// 判断名称是否重复
|
// 判断名称是否重复
|
||||||
if (!oldContractor.getName().equals(req.getName())) {
|
if (!oldContractor.getName().equals(req.getName())) {
|
||||||
Long count = this.lambdaQuery().eq(BusContractor::getName, req.getName()).count();
|
Long count = this.lambdaQuery().eq(SubContractor::getName, req.getName()).count();
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
@ -195,7 +195,7 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(BusContractor entity, Boolean create) {
|
private void validEntityBeforeSave(SubContractor entity, Boolean create) {
|
||||||
// 做一些数据校验,如唯一约束
|
// 做一些数据校验,如唯一约束
|
||||||
String name = entity.getName();
|
String name = entity.getName();
|
||||||
String principal = entity.getPrincipal();
|
String principal = entity.getPrincipal();
|
||||||
@ -231,14 +231,14 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
List<BusContractor> contractorList = this.listByIds(ids);
|
List<SubContractor> contractorList = this.listByIds(ids);
|
||||||
// 做一些业务上的校验,判断是否需要校验
|
// 做一些业务上的校验,判断是否需要校验
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
// 仅当前项目下的用户可以删除
|
// 仅当前项目下的用户可以删除
|
||||||
List<Long> projectIdList = contractorList.stream().map(BusContractor::getProjectId).toList();
|
List<Long> projectIdList = contractorList.stream().map(SubContractor::getProjectId).toList();
|
||||||
projectService.validAuth(projectIdList, userId);
|
projectService.validAuth(projectIdList, userId);
|
||||||
// 判断当前分包公司下是否还包含施工人员
|
// 判断当前分包公司下是否还包含施工人员
|
||||||
QueryWrapper<BusConstructionUser> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SubConstructionUser> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.in("contractor_id", ids);
|
queryWrapper.in("contractor_id", ids);
|
||||||
if (constructionUserService.count(queryWrapper) > 0) {
|
if (constructionUserService.count(queryWrapper) > 0) {
|
||||||
throw new ServiceException("删除分包单位失败,删除分包单位下存在施工人员", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("删除分包单位失败,删除分包单位下存在施工人员", HttpStatus.BAD_REQUEST);
|
||||||
@ -258,9 +258,9 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 分包公司视图对象
|
* @return 分包公司视图对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusContractorVo getVo(BusContractor contractor) {
|
public SubContractorVo getVo(SubContractor contractor) {
|
||||||
// 对象转封装类
|
// 对象转封装类
|
||||||
BusContractorVo contractorVo = new BusContractorVo();
|
SubContractorVo contractorVo = new SubContractorVo();
|
||||||
if (contractor == null) {
|
if (contractor == null) {
|
||||||
return contractorVo;
|
return contractorVo;
|
||||||
}
|
}
|
||||||
@ -284,8 +284,8 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 分包公司查询条件封装
|
* @return 分包公司查询条件封装
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LambdaQueryWrapper<BusContractor> buildQueryWrapper(BusContractorQueryReq req) {
|
public LambdaQueryWrapper<SubContractor> buildQueryWrapper(SubContractorQueryReq req) {
|
||||||
LambdaQueryWrapper<BusContractor> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SubContractor> lqw = new LambdaQueryWrapper<>();
|
||||||
if (req == null) {
|
if (req == null) {
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
@ -300,16 +300,16 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
String contractorType = req.getContractorType();
|
String contractorType = req.getContractorType();
|
||||||
String remark = req.getRemark();
|
String remark = req.getRemark();
|
||||||
// 模糊查询
|
// 模糊查询
|
||||||
lqw.like(StringUtils.isNotBlank(name), BusContractor::getName, name);
|
lqw.like(StringUtils.isNotBlank(name), SubContractor::getName, name);
|
||||||
lqw.like(StringUtils.isNotBlank(principal), BusContractor::getPrincipal, principal);
|
lqw.like(StringUtils.isNotBlank(principal), SubContractor::getPrincipal, principal);
|
||||||
lqw.like(StringUtils.isNotBlank(principalPhone), BusContractor::getPrincipalPhone, principalPhone);
|
lqw.like(StringUtils.isNotBlank(principalPhone), SubContractor::getPrincipalPhone, principalPhone);
|
||||||
lqw.like(StringUtils.isNotBlank(custodian), BusContractor::getCustodian, custodian);
|
lqw.like(StringUtils.isNotBlank(custodian), SubContractor::getCustodian, custodian);
|
||||||
lqw.like(StringUtils.isNotBlank(custodianPhone), BusContractor::getCustodianPhone, custodianPhone);
|
lqw.like(StringUtils.isNotBlank(custodianPhone), SubContractor::getCustodianPhone, custodianPhone);
|
||||||
lqw.like(StringUtils.isNotBlank(remark), BusContractor::getRemark, remark);
|
lqw.like(StringUtils.isNotBlank(remark), SubContractor::getRemark, remark);
|
||||||
// 精确查询
|
// 精确查询
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(id), BusContractor::getId, id);
|
lqw.eq(ObjectUtils.isNotEmpty(id), SubContractor::getId, id);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), BusContractor::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubContractor::getProjectId, projectId);
|
||||||
lqw.eq(StringUtils.isNotBlank(contractorType), BusContractor::getContractorType, contractorType);
|
lqw.eq(StringUtils.isNotBlank(contractorType), SubContractor::getContractorType, contractorType);
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,16 +320,16 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
|
|||||||
* @return 分包公司分页对象视图
|
* @return 分包公司分页对象视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<BusContractorVo> getVoPage(Page<BusContractor> contractorPage) {
|
public Page<SubContractorVo> getVoPage(Page<SubContractor> contractorPage) {
|
||||||
List<BusContractor> contractorList = contractorPage.getRecords();
|
List<SubContractor> contractorList = contractorPage.getRecords();
|
||||||
Page<BusContractorVo> contractorVoPage = new Page<>(
|
Page<SubContractorVo> contractorVoPage = new Page<>(
|
||||||
contractorPage.getCurrent(),
|
contractorPage.getCurrent(),
|
||||||
contractorPage.getSize(),
|
contractorPage.getSize(),
|
||||||
contractorPage.getTotal());
|
contractorPage.getTotal());
|
||||||
if (CollUtil.isEmpty(contractorList)) {
|
if (CollUtil.isEmpty(contractorList)) {
|
||||||
return contractorVoPage;
|
return contractorVoPage;
|
||||||
}
|
}
|
||||||
List<BusContractorVo> contractorVoList = contractorList.stream().map(this::getVo).toList();
|
List<SubContractorVo> contractorVoList = contractorList.stream().map(this::getVo).toList();
|
||||||
contractorVoPage.setRecords(contractorVoList);
|
contractorVoPage.setRecords(contractorVoList);
|
||||||
return contractorVoPage;
|
return contractorVoPage;
|
||||||
}
|
}
|
@ -12,22 +12,24 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.SubContractorTool;
|
||||||
import org.dromara.contractor.domain.SubContractorToolRecord;
|
import org.dromara.contractor.domain.SubContractorToolRecord;
|
||||||
import org.dromara.contractor.domain.dto.contractortoolentry.SubContractorToolRecordCreateReq;
|
import org.dromara.contractor.domain.dto.contractortoolentry.SubContractorToolRecordCreateReq;
|
||||||
import org.dromara.contractor.domain.dto.contractortoolentry.SubContractorToolRecordQueryReq;
|
import org.dromara.contractor.domain.dto.contractortoolentry.SubContractorToolRecordQueryReq;
|
||||||
import org.dromara.contractor.domain.dto.contractortoolentry.SubContractorToolRecordUpdateReq;
|
import org.dromara.contractor.domain.dto.contractortoolentry.SubContractorToolRecordUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.enums.SubContractorRecordEnum;
|
||||||
import org.dromara.contractor.domain.vo.contractortoolentry.SubContractorToolRecordVo;
|
import org.dromara.contractor.domain.vo.contractortoolentry.SubContractorToolRecordVo;
|
||||||
import org.dromara.contractor.mapper.SubContractorToolRecordMapper;
|
import org.dromara.contractor.mapper.SubContractorToolRecordMapper;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
import org.dromara.contractor.service.ISubContractorToolRecordService;
|
import org.dromara.contractor.service.ISubContractorToolRecordService;
|
||||||
import org.dromara.project.domain.BusContractor;
|
import org.dromara.contractor.service.ISubContractorToolService;
|
||||||
import org.dromara.project.domain.BusContractorTool;
|
|
||||||
import org.dromara.project.service.IBusContractorService;
|
|
||||||
import org.dromara.project.service.IBusContractorToolService;
|
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -48,10 +50,10 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorService contractorService;
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorToolService contractorToolService;
|
private ISubContractorToolService contractorToolService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包方工器具记录
|
* 查询分包方工器具记录
|
||||||
@ -100,6 +102,7 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
* @return 新增分包方工器具记录主键id
|
* @return 新增分包方工器具记录主键id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long insertByBo(SubContractorToolRecordCreateReq req) {
|
public Long insertByBo(SubContractorToolRecordCreateReq req) {
|
||||||
SubContractorToolRecord entry = new SubContractorToolRecord();
|
SubContractorToolRecord entry = new SubContractorToolRecord();
|
||||||
BeanUtils.copyProperties(req, entry);
|
BeanUtils.copyProperties(req, entry);
|
||||||
@ -107,16 +110,21 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
if (contractorToolId == null) {
|
if (contractorToolId == null) {
|
||||||
throw new ServiceException("工器具id不能为空", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("工器具id不能为空", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
BusContractorTool contractorTool = contractorToolService.getById(contractorToolId);
|
SubContractorTool contractorTool = contractorToolService.getById(contractorToolId);
|
||||||
if (contractorTool == null) {
|
if (contractorTool == null) {
|
||||||
throw new ServiceException("分包方工器具不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("分包方工器具不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
// 填充默认值
|
// 填充默认值
|
||||||
entry.setProjectId(contractorTool.getProjectId());
|
entry.setProjectId(contractorTool.getProjectId());
|
||||||
entry.setContractorId(contractorTool.getContractorId());
|
entry.setContractorId(contractorTool.getContractorId());
|
||||||
|
String recordType = req.getRecordType();
|
||||||
|
BigDecimal recordNumber = req.getRecordNumber();
|
||||||
|
// 同步更新工具数量
|
||||||
|
BigDecimal number = this.computeRemainingToolNumber(contractorTool, recordType, recordNumber);
|
||||||
|
entry.setRemainingNumber(number);
|
||||||
boolean save = this.save(entry);
|
boolean save = this.save(entry);
|
||||||
if (!save) {
|
if (!save) {
|
||||||
throw new ServiceException("分包方工器具记录失败", HttpStatus.ERROR);
|
throw new ServiceException("保存分包方工器具记录失败", HttpStatus.ERROR);
|
||||||
}
|
}
|
||||||
return entry.getId();
|
return entry.getId();
|
||||||
}
|
}
|
||||||
@ -128,6 +136,7 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean updateByBo(SubContractorToolRecordUpdateReq req) {
|
public Boolean updateByBo(SubContractorToolRecordUpdateReq req) {
|
||||||
SubContractorToolRecord entry = new SubContractorToolRecord();
|
SubContractorToolRecord entry = new SubContractorToolRecord();
|
||||||
BeanUtils.copyProperties(req, entry);
|
BeanUtils.copyProperties(req, entry);
|
||||||
@ -135,6 +144,15 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
if (contractorToolEntry == null) {
|
if (contractorToolEntry == null) {
|
||||||
throw new ServiceException("修改分包方工器具记录失败,数据不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("修改分包方工器具记录失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
SubContractorTool contractorTool = contractorToolService.getById(contractorToolEntry.getContractorToolId());
|
||||||
|
if (contractorTool == null) {
|
||||||
|
throw new ServiceException("分包方工器具不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
String recordType = contractorToolEntry.getRecordType();
|
||||||
|
BigDecimal recordNumber = req.getRecordNumber();
|
||||||
|
// 同步更新工具数量
|
||||||
|
BigDecimal number = this.computeRemainingToolNumber(contractorTool, recordType, recordNumber);
|
||||||
|
entry.setRemainingNumber(number);
|
||||||
boolean result = this.updateById(entry);
|
boolean result = this.updateById(entry);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new ServiceException("修改分包方工器具记录失败", HttpStatus.ERROR);
|
throw new ServiceException("修改分包方工器具记录失败", HttpStatus.ERROR);
|
||||||
@ -165,21 +183,21 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
/**
|
/**
|
||||||
* 获取分包方工器具记录视图对象
|
* 获取分包方工器具记录视图对象
|
||||||
*
|
*
|
||||||
* @param contractorToolEntry 分包方工器具记录对象
|
* @param subContractorToolRecord 分包方工器具记录对象
|
||||||
* @return 分包方工器具记录视图对象
|
* @return 分包方工器具记录视图对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SubContractorToolRecordVo getVo(SubContractorToolRecord contractorToolEntry) {
|
public SubContractorToolRecordVo getVo(SubContractorToolRecord subContractorToolRecord) {
|
||||||
SubContractorToolRecordVo vo = new SubContractorToolRecordVo();
|
SubContractorToolRecordVo vo = new SubContractorToolRecordVo();
|
||||||
if (contractorToolEntry == null) {
|
if (subContractorToolRecord == null) {
|
||||||
throw new ServiceException("数据不存在");
|
throw new ServiceException("数据不存在");
|
||||||
}
|
}
|
||||||
BeanUtils.copyProperties(contractorToolEntry, vo);
|
BeanUtils.copyProperties(subContractorToolRecord, vo);
|
||||||
BusContractorTool contractorTool = contractorToolService.getById(vo.getContractorToolId());
|
SubContractorTool contractorTool = contractorToolService.getById(vo.getContractorToolId());
|
||||||
if (contractorTool != null) {
|
if (contractorTool != null) {
|
||||||
vo.setContractorToolName(contractorTool.getToolName());
|
vo.setContractorToolName(contractorTool.getToolName());
|
||||||
}
|
}
|
||||||
BusContractor contractor = contractorService.getById(vo.getContractorId());
|
SubContractor contractor = contractorService.getById(vo.getContractorId());
|
||||||
if (contractor != null) {
|
if (contractor != null) {
|
||||||
vo.setContractorName(contractor.getName());
|
vo.setContractorName(contractor.getName());
|
||||||
}
|
}
|
||||||
@ -203,9 +221,11 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
Long contractorToolId = req.getContractorToolId();
|
Long contractorToolId = req.getContractorToolId();
|
||||||
String checkNum = req.getCheckNum();
|
String checkNum = req.getCheckNum();
|
||||||
String checkDept = req.getCheckDept();
|
String checkDept = req.getCheckDept();
|
||||||
|
String recordType = req.getRecordType();
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubContractorToolRecord::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubContractorToolRecord::getProjectId, projectId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubContractorToolRecord::getContractorId, contractorId);
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubContractorToolRecord::getContractorId, contractorId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(contractorToolId), SubContractorToolRecord::getContractorToolId, contractorToolId);
|
lqw.eq(ObjectUtils.isNotEmpty(contractorToolId), SubContractorToolRecord::getContractorToolId, contractorToolId);
|
||||||
|
lqw.eq(StringUtils.isNotBlank(recordType), SubContractorToolRecord::getRecordType, recordType);
|
||||||
lqw.like(StringUtils.isNotBlank(checkNum), SubContractorToolRecord::getCheckNum, checkNum);
|
lqw.like(StringUtils.isNotBlank(checkNum), SubContractorToolRecord::getCheckNum, checkNum);
|
||||||
lqw.like(StringUtils.isNotBlank(checkDept), SubContractorToolRecord::getCheckDept, checkDept);
|
lqw.like(StringUtils.isNotBlank(checkDept), SubContractorToolRecord::getCheckDept, checkDept);
|
||||||
return lqw;
|
return lqw;
|
||||||
@ -214,25 +234,25 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
/**
|
/**
|
||||||
* 获取分包方工器具记录分页对象视图
|
* 获取分包方工器具记录分页对象视图
|
||||||
*
|
*
|
||||||
* @param contractorToolEntryPage 分包方工器具记录分页对象
|
* @param contractorToolRecordPage 分包方工器具记录分页对象
|
||||||
* @return 分包方工器具记录分页对象视图
|
* @return 分包方工器具记录分页对象视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<SubContractorToolRecordVo> getVoPage(Page<SubContractorToolRecord> contractorToolEntryPage) {
|
public Page<SubContractorToolRecordVo> getVoPage(Page<SubContractorToolRecord> contractorToolRecordPage) {
|
||||||
List<SubContractorToolRecord> contractorToolEntryList = contractorToolEntryPage.getRecords();
|
List<SubContractorToolRecord> contractorToolEntryList = contractorToolRecordPage.getRecords();
|
||||||
Page<SubContractorToolRecordVo> contractorToolEntryVoPage = new Page<>(
|
Page<SubContractorToolRecordVo> contractorToolEntryVoPage = new Page<>(
|
||||||
contractorToolEntryPage.getCurrent(),
|
contractorToolRecordPage.getCurrent(),
|
||||||
contractorToolEntryPage.getSize(),
|
contractorToolRecordPage.getSize(),
|
||||||
contractorToolEntryPage.getTotal());
|
contractorToolRecordPage.getTotal());
|
||||||
if (CollUtil.isEmpty(contractorToolEntryList)) {
|
if (CollUtil.isEmpty(contractorToolEntryList)) {
|
||||||
return contractorToolEntryVoPage;
|
return contractorToolEntryVoPage;
|
||||||
}
|
}
|
||||||
Set<Long> contractorIdList = contractorToolEntryList.stream().map(SubContractorToolRecord::getContractorId).collect(Collectors.toSet());
|
Set<Long> contractorIdList = contractorToolEntryList.stream().map(SubContractorToolRecord::getContractorId).collect(Collectors.toSet());
|
||||||
Map<Long, BusContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
Map<Long, SubContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
||||||
.stream().collect(Collectors.toMap(BusContractor::getId, v -> v));
|
.stream().collect(Collectors.toMap(SubContractor::getId, v -> v));
|
||||||
Set<Long> contractorToolIdList = contractorToolEntryList.stream().map(SubContractorToolRecord::getContractorToolId).collect(Collectors.toSet());
|
Set<Long> contractorToolIdList = contractorToolEntryList.stream().map(SubContractorToolRecord::getContractorToolId).collect(Collectors.toSet());
|
||||||
Map<Long, BusContractorTool> contractorToolMap = contractorToolService.listByIds(contractorToolIdList)
|
Map<Long, SubContractorTool> contractorToolMap = contractorToolService.listByIds(contractorToolIdList)
|
||||||
.stream().collect(Collectors.toMap(BusContractorTool::getId, v -> v));
|
.stream().collect(Collectors.toMap(SubContractorTool::getId, v -> v));
|
||||||
List<SubContractorToolRecordVo> contractorToolEntryVoList = contractorToolEntryList.stream().map(entity -> {
|
List<SubContractorToolRecordVo> contractorToolEntryVoList = contractorToolEntryList.stream().map(entity -> {
|
||||||
SubContractorToolRecordVo vo = new SubContractorToolRecordVo();
|
SubContractorToolRecordVo vo = new SubContractorToolRecordVo();
|
||||||
BeanUtils.copyProperties(entity, vo);
|
BeanUtils.copyProperties(entity, vo);
|
||||||
@ -247,4 +267,39 @@ public class SubContractorToolRecordServiceImpl extends ServiceImpl<SubContracto
|
|||||||
contractorToolEntryVoPage.setRecords(contractorToolEntryVoList);
|
contractorToolEntryVoPage.setRecords(contractorToolEntryVoList);
|
||||||
return contractorToolEntryVoPage;
|
return contractorToolEntryVoPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算剩余库存并更新库存对象返回剩余数量
|
||||||
|
*
|
||||||
|
* @param contractorTool 当前库存工具
|
||||||
|
* @param recordType 操作类型(入库/出库)
|
||||||
|
* @param recordNumber 本次操作数量
|
||||||
|
* @return 剩余数量
|
||||||
|
*/
|
||||||
|
private BigDecimal computeRemainingToolNumber(SubContractorTool contractorTool, String recordType, BigDecimal recordNumber) {
|
||||||
|
if (recordNumber == null) {
|
||||||
|
throw new ServiceException("工器具数量不能为空", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
BigDecimal toolNumber = contractorTool.getToolNumber();
|
||||||
|
SubContractorTool newContractorTool = new SubContractorTool();
|
||||||
|
newContractorTool.setId(contractorTool.getId());
|
||||||
|
BigDecimal result;
|
||||||
|
if (SubContractorRecordEnum.PUT.getValue().equals(recordType)) {
|
||||||
|
result = toolNumber.add(recordNumber);
|
||||||
|
} else if (SubContractorRecordEnum.OUT.getValue().equals(recordType)) {
|
||||||
|
result = toolNumber.subtract(recordNumber);
|
||||||
|
if (result.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
throw new ServiceException("出库数量不能大于库存数量", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new ServiceException("分包方工器具记录类型错误", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
newContractorTool.setToolNumber(result);
|
||||||
|
boolean update = contractorToolService.updateById(newContractorTool);
|
||||||
|
if (!update) {
|
||||||
|
throw new ServiceException("更新分包方工器具信息异常", HttpStatus.ERROR);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.service.impl;
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@ -12,15 +12,15 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.domain.BusContractor;
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
import org.dromara.project.domain.BusContractorTool;
|
import org.dromara.contractor.domain.SubContractorTool;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolCreateReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolCreateReq;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolQueryReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolQueryReq;
|
||||||
import org.dromara.project.domain.dto.contractortool.BusContractorToolUpdateReq;
|
import org.dromara.contractor.domain.dto.contractortool.SubContractorToolUpdateReq;
|
||||||
import org.dromara.project.domain.vo.contractortool.BusContractorToolVo;
|
import org.dromara.contractor.domain.vo.contractortool.SubContractorToolVo;
|
||||||
import org.dromara.project.mapper.BusContractorToolMapper;
|
import org.dromara.contractor.mapper.SubContractorToolMapper;
|
||||||
import org.dromara.project.service.IBusContractorService;
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
import org.dromara.project.service.IBusContractorToolService;
|
import org.dromara.contractor.service.ISubContractorToolService;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -39,14 +39,14 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2025-06-26
|
* @date 2025-06-26
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolMapper, BusContractorTool>
|
public class SubContractorToolServiceImpl extends ServiceImpl<SubContractorToolMapper, SubContractorTool>
|
||||||
implements IBusContractorToolService {
|
implements ISubContractorToolService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorService contractorService;
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询分包方工器具
|
* 查询分包方工器具
|
||||||
@ -55,8 +55,8 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 分包方工器具
|
* @return 分包方工器具
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusContractorToolVo queryById(Long id) {
|
public SubContractorToolVo queryById(Long id) {
|
||||||
BusContractorTool contractorTool = this.getById(id);
|
SubContractorTool contractorTool = this.getById(id);
|
||||||
if (contractorTool == null) {
|
if (contractorTool == null) {
|
||||||
throw new ServiceException("分包方工器具信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("分包方工器具信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -71,8 +71,8 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 分包方工器具分页列表
|
* @return 分包方工器具分页列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<BusContractorToolVo> queryPageList(BusContractorToolQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubContractorToolVo> queryPageList(SubContractorToolQueryReq req, PageQuery pageQuery) {
|
||||||
Page<BusContractorTool> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
Page<SubContractorTool> result = this.page(pageQuery.build(), this.buildQueryWrapper(req));
|
||||||
return TableDataInfo.build(this.getVoPage(result));
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,8 +83,8 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 分包方工器具列表
|
* @return 分包方工器具列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusContractorToolVo> queryList(BusContractorToolQueryReq req) {
|
public List<SubContractorToolVo> queryList(SubContractorToolQueryReq req) {
|
||||||
LambdaQueryWrapper<BusContractorTool> lqw = this.buildQueryWrapper(req);
|
LambdaQueryWrapper<SubContractorTool> lqw = this.buildQueryWrapper(req);
|
||||||
return this.list(lqw).stream().map(this::getVo).toList();
|
return this.list(lqw).stream().map(this::getVo).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,8 +95,8 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 新增分包工器具主键id
|
* @return 新增分包工器具主键id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Long insertByBo(BusContractorToolCreateReq req) {
|
public Long insertByBo(SubContractorToolCreateReq req) {
|
||||||
BusContractorTool contractorTool = new BusContractorTool();
|
SubContractorTool contractorTool = new SubContractorTool();
|
||||||
BeanUtils.copyProperties(req, contractorTool);
|
BeanUtils.copyProperties(req, contractorTool);
|
||||||
validEntityBeforeSave(contractorTool, true);
|
validEntityBeforeSave(contractorTool, true);
|
||||||
boolean result = this.save(contractorTool);
|
boolean result = this.save(contractorTool);
|
||||||
@ -113,13 +113,13 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(BusContractorToolUpdateReq req) {
|
public Boolean updateByBo(SubContractorToolUpdateReq req) {
|
||||||
Long id = req.getId();
|
Long id = req.getId();
|
||||||
BusContractorTool oldContractorTool = this.getById(id);
|
SubContractorTool oldContractorTool = this.getById(id);
|
||||||
if (oldContractorTool == null) {
|
if (oldContractorTool == null) {
|
||||||
throw new ServiceException("修改分包方工器具失败,数据不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("修改分包方工器具失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
BusContractorTool contractorTool = new BusContractorTool();
|
SubContractorTool contractorTool = new SubContractorTool();
|
||||||
BeanUtils.copyProperties(req, contractorTool);
|
BeanUtils.copyProperties(req, contractorTool);
|
||||||
validEntityBeforeSave(contractorTool, false);
|
validEntityBeforeSave(contractorTool, false);
|
||||||
boolean result = this.updateById(contractorTool);
|
boolean result = this.updateById(contractorTool);
|
||||||
@ -132,7 +132,7 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(BusContractorTool entity, Boolean create) {
|
private void validEntityBeforeSave(SubContractorTool entity, Boolean create) {
|
||||||
Long projectId = entity.getProjectId();
|
Long projectId = entity.getProjectId();
|
||||||
Long contractorId = entity.getContractorId();
|
Long contractorId = entity.getContractorId();
|
||||||
if (create) {
|
if (create) {
|
||||||
@ -162,10 +162,10 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
List<BusContractorTool> contractorToolList = this.listByIds(ids);
|
List<SubContractorTool> contractorToolList = this.listByIds(ids);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
List<Long> projectIdList = contractorToolList.stream().map(BusContractorTool::getProjectId).distinct().toList();
|
List<Long> projectIdList = contractorToolList.stream().map(SubContractorTool::getProjectId).distinct().toList();
|
||||||
projectService.validAuth(projectIdList, userId);
|
projectService.validAuth(projectIdList, userId);
|
||||||
}
|
}
|
||||||
return this.removeBatchByIds(ids);
|
return this.removeBatchByIds(ids);
|
||||||
@ -178,14 +178,14 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 分包方工器具视图对象
|
* @return 分包方工器具视图对象
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusContractorToolVo getVo(BusContractorTool contractorTool) {
|
public SubContractorToolVo getVo(SubContractorTool contractorTool) {
|
||||||
BusContractorToolVo contractorToolVo = new BusContractorToolVo();
|
SubContractorToolVo contractorToolVo = new SubContractorToolVo();
|
||||||
if (contractorTool == null) {
|
if (contractorTool == null) {
|
||||||
return contractorToolVo;
|
return contractorToolVo;
|
||||||
}
|
}
|
||||||
BeanUtils.copyProperties(contractorTool, contractorToolVo);
|
BeanUtils.copyProperties(contractorTool, contractorToolVo);
|
||||||
Long contractorId = contractorTool.getContractorId();
|
Long contractorId = contractorTool.getContractorId();
|
||||||
BusContractor contractor = contractorService.getById(contractorId);
|
SubContractor contractor = contractorService.getById(contractorId);
|
||||||
contractorToolVo.setContractorName(contractor.getName());
|
contractorToolVo.setContractorName(contractor.getName());
|
||||||
return contractorToolVo;
|
return contractorToolVo;
|
||||||
}
|
}
|
||||||
@ -197,18 +197,18 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 分包方工器具查询条件封装
|
* @return 分包方工器具查询条件封装
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LambdaQueryWrapper<BusContractorTool> buildQueryWrapper(BusContractorToolQueryReq req) {
|
public LambdaQueryWrapper<SubContractorTool> buildQueryWrapper(SubContractorToolQueryReq req) {
|
||||||
LambdaQueryWrapper<BusContractorTool> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SubContractorTool> lqw = new LambdaQueryWrapper<>();
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
Long contractorId = req.getContractorId();
|
Long contractorId = req.getContractorId();
|
||||||
String toolName = req.getToolName();
|
String toolName = req.getToolName();
|
||||||
String toolType = req.getToolType();
|
String toolType = req.getToolType();
|
||||||
String toolModel = req.getToolModel();
|
String toolModel = req.getToolModel();
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), BusContractorTool::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubContractorTool::getProjectId, projectId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(contractorId), BusContractorTool::getContractorId, contractorId);
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubContractorTool::getContractorId, contractorId);
|
||||||
lqw.eq(StringUtils.isNotBlank(toolType), BusContractorTool::getToolType, toolType);
|
lqw.eq(StringUtils.isNotBlank(toolType), SubContractorTool::getToolType, toolType);
|
||||||
lqw.like(StringUtils.isNotBlank(toolName), BusContractorTool::getToolName, toolName);
|
lqw.like(StringUtils.isNotBlank(toolName), SubContractorTool::getToolName, toolName);
|
||||||
lqw.like(StringUtils.isNotBlank(toolModel), BusContractorTool::getToolModel, toolModel);
|
lqw.like(StringUtils.isNotBlank(toolModel), SubContractorTool::getToolModel, toolModel);
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,20 +219,20 @@ public class BusContractorToolServiceImpl extends ServiceImpl<BusContractorToolM
|
|||||||
* @return 分包方工器具分页对象视图
|
* @return 分包方工器具分页对象视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<BusContractorToolVo> getVoPage(Page<BusContractorTool> contractorPage) {
|
public Page<SubContractorToolVo> getVoPage(Page<SubContractorTool> contractorPage) {
|
||||||
List<BusContractorTool> contractorToolList = contractorPage.getRecords();
|
List<SubContractorTool> contractorToolList = contractorPage.getRecords();
|
||||||
Page<BusContractorToolVo> contractorToolVoPage = new Page<>(
|
Page<SubContractorToolVo> contractorToolVoPage = new Page<>(
|
||||||
contractorPage.getCurrent(),
|
contractorPage.getCurrent(),
|
||||||
contractorPage.getSize(),
|
contractorPage.getSize(),
|
||||||
contractorPage.getTotal());
|
contractorPage.getTotal());
|
||||||
if (CollUtil.isEmpty(contractorToolList)) {
|
if (CollUtil.isEmpty(contractorToolList)) {
|
||||||
return contractorToolVoPage;
|
return contractorToolVoPage;
|
||||||
}
|
}
|
||||||
Set<Long> contractorIdList = contractorToolList.stream().map(BusContractorTool::getContractorId).collect(Collectors.toSet());
|
Set<Long> contractorIdList = contractorToolList.stream().map(SubContractorTool::getContractorId).collect(Collectors.toSet());
|
||||||
Map<Long, BusContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
Map<Long, SubContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
||||||
.stream().collect(Collectors.toMap(BusContractor::getId, v -> v));
|
.stream().collect(Collectors.toMap(SubContractor::getId, v -> v));
|
||||||
List<BusContractorToolVo> contractorToolVoList = contractorToolList.stream().map(contractorTool -> {
|
List<SubContractorToolVo> contractorToolVoList = contractorToolList.stream().map(contractorTool -> {
|
||||||
BusContractorToolVo contractorToolVo = new BusContractorToolVo();
|
SubContractorToolVo contractorToolVo = new SubContractorToolVo();
|
||||||
BeanUtils.copyProperties(contractorTool, contractorToolVo);
|
BeanUtils.copyProperties(contractorTool, contractorToolVo);
|
||||||
Long contractorId = contractorTool.getContractorId();
|
Long contractorId = contractorTool.getContractorId();
|
||||||
if (contractorMap.containsKey(contractorId)) {
|
if (contractorMap.containsKey(contractorId)) {
|
@ -1,4 +1,4 @@
|
|||||||
package org.dromara.project.service.impl;
|
package org.dromara.contractor.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@ -13,17 +13,17 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.domain.BusContractor;
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.domain.SubSubcontract;
|
||||||
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractCreateReq;
|
||||||
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractQueryReq;
|
||||||
|
import org.dromara.contractor.domain.dto.subcontract.SubSubcontractUpdateReq;
|
||||||
|
import org.dromara.contractor.domain.vo.subcontract.SubSubcontractVo;
|
||||||
|
import org.dromara.contractor.mapper.SubSubcontractMapper;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
|
import org.dromara.contractor.service.ISubSubcontractService;
|
||||||
import org.dromara.project.domain.BusProject;
|
import org.dromara.project.domain.BusProject;
|
||||||
import org.dromara.project.domain.BusSubcontract;
|
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractCreateReq;
|
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractQueryReq;
|
|
||||||
import org.dromara.project.domain.dto.subcontract.BusSubcontractUpdateReq;
|
|
||||||
import org.dromara.project.domain.vo.subcontract.BusSubcontractVo;
|
|
||||||
import org.dromara.project.mapper.BusSubcontractMapper;
|
|
||||||
import org.dromara.project.service.IBusContractorService;
|
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.dromara.project.service.IBusSubcontractService;
|
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -43,14 +43,14 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper, BusSubcontract>
|
public class SubSubcontractServiceImpl extends ServiceImpl<SubSubcontractMapper, SubSubcontract>
|
||||||
implements IBusSubcontractService {
|
implements ISubSubcontractService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorService contractorService;
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISysOssService ossService;
|
private ISysOssService ossService;
|
||||||
@ -62,8 +62,8 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 分包合同
|
* @return 分包合同
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusSubcontractVo queryById(Long id) {
|
public SubSubcontractVo queryById(Long id) {
|
||||||
BusSubcontract subcontract = this.getById(id);
|
SubSubcontract subcontract = this.getById(id);
|
||||||
if (subcontract == null) {
|
if (subcontract == null) {
|
||||||
throw new ServiceException("分包合同信息不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("分包合同信息不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -78,9 +78,9 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 分包合同分页列表
|
* @return 分包合同分页列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<BusSubcontractVo> queryPageList(BusSubcontractQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<SubSubcontractVo> queryPageList(SubSubcontractQueryReq req, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<BusSubcontract> lqw = buildQueryWrapper(req);
|
LambdaQueryWrapper<SubSubcontract> lqw = buildQueryWrapper(req);
|
||||||
Page<BusSubcontract> result = this.page(pageQuery.build(), lqw);
|
Page<SubSubcontract> result = this.page(pageQuery.build(), lqw);
|
||||||
return TableDataInfo.build(this.getVoPage(result));
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,8 +91,8 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 分包合同列表
|
* @return 分包合同列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusSubcontractVo> queryList(BusSubcontractQueryReq req) {
|
public List<SubSubcontractVo> queryList(SubSubcontractQueryReq req) {
|
||||||
LambdaQueryWrapper<BusSubcontract> lqw = buildQueryWrapper(req);
|
LambdaQueryWrapper<SubSubcontract> lqw = buildQueryWrapper(req);
|
||||||
return this.list(lqw).stream().map(this::getVo).toList();
|
return this.list(lqw).stream().map(this::getVo).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,14 +103,14 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 新增主键id
|
* @return 新增主键id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Long insertByBo(BusSubcontractCreateReq req) {
|
public Long insertByBo(SubSubcontractCreateReq req) {
|
||||||
BusSubcontract subcontract = new BusSubcontract();
|
SubSubcontract subcontract = new SubSubcontract();
|
||||||
BeanUtils.copyProperties(req, subcontract);
|
BeanUtils.copyProperties(req, subcontract);
|
||||||
validEntityBeforeSave(subcontract);
|
validEntityBeforeSave(subcontract);
|
||||||
Long count = this.lambdaQuery()
|
Long count = this.lambdaQuery()
|
||||||
.eq(BusSubcontract::getProjectId, req.getProjectId())
|
.eq(SubSubcontract::getProjectId, req.getProjectId())
|
||||||
.eq(BusSubcontract::getContractorId, req.getContractorId())
|
.eq(SubSubcontract::getContractorId, req.getContractorId())
|
||||||
.eq(BusSubcontract::getContractFileId, req.getContractFileId())
|
.eq(SubSubcontract::getContractFileId, req.getContractFileId())
|
||||||
.count();
|
.count();
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
throw new ServiceException("已关联该项目合同", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("已关联该项目合同", HttpStatus.BAD_REQUEST);
|
||||||
@ -129,19 +129,19 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(BusSubcontractUpdateReq req) {
|
public Boolean updateByBo(SubSubcontractUpdateReq req) {
|
||||||
BusSubcontract subcontract = new BusSubcontract();
|
SubSubcontract subcontract = new SubSubcontract();
|
||||||
BeanUtils.copyProperties(req, subcontract);
|
BeanUtils.copyProperties(req, subcontract);
|
||||||
validEntityBeforeSave(subcontract);
|
validEntityBeforeSave(subcontract);
|
||||||
Long id = req.getId();
|
Long id = req.getId();
|
||||||
BusSubcontract oldSubcontract = this.getById(id);
|
SubSubcontract oldSubcontract = this.getById(id);
|
||||||
if (oldSubcontract == null) {
|
if (oldSubcontract == null) {
|
||||||
throw new ServiceException("修改分包合同失败,数据不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("修改分包合同失败,数据不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
Long count = this.lambdaQuery()
|
Long count = this.lambdaQuery()
|
||||||
.eq(BusSubcontract::getProjectId, req.getProjectId())
|
.eq(SubSubcontract::getProjectId, req.getProjectId())
|
||||||
.eq(BusSubcontract::getContractorId, req.getContractorId())
|
.eq(SubSubcontract::getContractorId, req.getContractorId())
|
||||||
.eq(BusSubcontract::getContractFileId, req.getContractFileId())
|
.eq(SubSubcontract::getContractFileId, req.getContractFileId())
|
||||||
.count();
|
.count();
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
throw new ServiceException("已关联该项目合同", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("已关联该项目合同", HttpStatus.BAD_REQUEST);
|
||||||
@ -156,7 +156,7 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(BusSubcontract entity) {
|
private void validEntityBeforeSave(SubSubcontract entity) {
|
||||||
Long projectId = entity.getProjectId();
|
Long projectId = entity.getProjectId();
|
||||||
Long contractorId = entity.getContractorId();
|
Long contractorId = entity.getContractorId();
|
||||||
if (projectId == null) {
|
if (projectId == null) {
|
||||||
@ -169,7 +169,7 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
if (project == null) {
|
if (project == null) {
|
||||||
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
BusContractor contractor = contractorService.getById(contractorId);
|
SubContractor contractor = contractorService.getById(contractorId);
|
||||||
if (contractor == null) {
|
if (contractor == null) {
|
||||||
throw new ServiceException("对应合同方不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("对应合同方不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
@ -189,13 +189,13 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
List<BusSubcontract> list = this.listByIds(ids);
|
List<SubSubcontract> list = this.listByIds(ids);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
List<Long> projectIdList = list.stream().map(BusSubcontract::getProjectId).toList();
|
List<Long> projectIdList = list.stream().map(SubSubcontract::getProjectId).toList();
|
||||||
projectService.validAuth(projectIdList, userId);
|
projectService.validAuth(projectIdList, userId);
|
||||||
}
|
}
|
||||||
// 关联删除文件
|
// 关联删除文件
|
||||||
Set<Long> fileIdList = list.stream().map(BusSubcontract::getContractFileId).collect(Collectors.toSet());
|
Set<Long> fileIdList = list.stream().map(SubSubcontract::getContractFileId).collect(Collectors.toSet());
|
||||||
Boolean result = ossService.deleteWithValidByIds(fileIdList, false);
|
Boolean result = ossService.deleteWithValidByIds(fileIdList, false);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
log.error("删除文件:{}失败", fileIdList);
|
log.error("删除文件:{}失败", fileIdList);
|
||||||
@ -210,9 +210,9 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 分包合同视图
|
* @return 分包合同视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BusSubcontractVo getVo(BusSubcontract subcontract) {
|
public SubSubcontractVo getVo(SubSubcontract subcontract) {
|
||||||
// 封装对象
|
// 封装对象
|
||||||
BusSubcontractVo subcontractVo = new BusSubcontractVo();
|
SubSubcontractVo subcontractVo = new SubSubcontractVo();
|
||||||
if (subcontract == null) {
|
if (subcontract == null) {
|
||||||
return subcontractVo;
|
return subcontractVo;
|
||||||
}
|
}
|
||||||
@ -227,18 +227,18 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 查询条件封装
|
* @return 查询条件封装
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LambdaQueryWrapper<BusSubcontract> buildQueryWrapper(BusSubcontractQueryReq req) {
|
public LambdaQueryWrapper<SubSubcontract> buildQueryWrapper(SubSubcontractQueryReq req) {
|
||||||
LambdaQueryWrapper<BusSubcontract> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SubSubcontract> lqw = new LambdaQueryWrapper<>();
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
Long contractorId = req.getContractorId();
|
Long contractorId = req.getContractorId();
|
||||||
String contractNumber = req.getContractNumber();
|
String contractNumber = req.getContractNumber();
|
||||||
String contractName = req.getContractName();
|
String contractName = req.getContractName();
|
||||||
String contractType = req.getContractType();
|
String contractType = req.getContractType();
|
||||||
lqw.like(StringUtils.isNotBlank(contractNumber), BusSubcontract::getContractNumber, contractNumber);
|
lqw.like(StringUtils.isNotBlank(contractNumber), SubSubcontract::getContractNumber, contractNumber);
|
||||||
lqw.like(StringUtils.isNotBlank(contractName), BusSubcontract::getContractName, contractName);
|
lqw.like(StringUtils.isNotBlank(contractName), SubSubcontract::getContractName, contractName);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), BusSubcontract::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), SubSubcontract::getProjectId, projectId);
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(contractorId), BusSubcontract::getContractorId, contractorId);
|
lqw.eq(ObjectUtils.isNotEmpty(contractorId), SubSubcontract::getContractorId, contractorId);
|
||||||
lqw.eq(StringUtils.isNotBlank(contractType), BusSubcontract::getContractType, contractType);
|
lqw.eq(StringUtils.isNotBlank(contractType), SubSubcontract::getContractType, contractType);
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,9 +249,9 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
* @return 分包合同分页视图
|
* @return 分包合同分页视图
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page<BusSubcontractVo> getVoPage(Page<BusSubcontract> subcontractPage) {
|
public Page<SubSubcontractVo> getVoPage(Page<SubSubcontract> subcontractPage) {
|
||||||
List<BusSubcontract> subcontractList = subcontractPage.getRecords();
|
List<SubSubcontract> subcontractList = subcontractPage.getRecords();
|
||||||
Page<BusSubcontractVo> subcontractVoPage = new Page<>(
|
Page<SubSubcontractVo> subcontractVoPage = new Page<>(
|
||||||
subcontractPage.getCurrent(),
|
subcontractPage.getCurrent(),
|
||||||
subcontractPage.getSize(),
|
subcontractPage.getSize(),
|
||||||
subcontractPage.getTotal()
|
subcontractPage.getTotal()
|
||||||
@ -260,15 +260,15 @@ public class BusSubcontractServiceImpl extends ServiceImpl<BusSubcontractMapper,
|
|||||||
return subcontractVoPage;
|
return subcontractVoPage;
|
||||||
}
|
}
|
||||||
// 获取分包商信息
|
// 获取分包商信息
|
||||||
Set<Long> contractorIdList = subcontractList.stream().map(BusSubcontract::getContractorId).collect(Collectors.toSet());
|
Set<Long> contractorIdList = subcontractList.stream().map(SubSubcontract::getContractorId).collect(Collectors.toSet());
|
||||||
Map<Long, BusContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
Map<Long, SubContractor> contractorMap = contractorService.listByIds(contractorIdList)
|
||||||
.stream().collect(Collectors.toMap(BusContractor::getId, v -> v));
|
.stream().collect(Collectors.toMap(SubContractor::getId, v -> v));
|
||||||
List<BusSubcontractVo> subcontractVoList = subcontractList.stream().map(entity -> {
|
List<SubSubcontractVo> subcontractVoList = subcontractList.stream().map(entity -> {
|
||||||
BusSubcontractVo subcontractVo = new BusSubcontractVo();
|
SubSubcontractVo subcontractVo = new SubSubcontractVo();
|
||||||
BeanUtils.copyProperties(entity, subcontractVo);
|
BeanUtils.copyProperties(entity, subcontractVo);
|
||||||
Long contractorId = entity.getContractorId();
|
Long contractorId = entity.getContractorId();
|
||||||
if (contractorMap.containsKey(contractorId)) {
|
if (contractorMap.containsKey(contractorId)) {
|
||||||
BusContractor contractor = contractorMap.get(contractorId);
|
SubContractor contractor = contractorMap.get(contractorId);
|
||||||
subcontractVo.setContractorName(contractor.getName());
|
subcontractVo.setContractorName(contractor.getName());
|
||||||
}
|
}
|
||||||
return subcontractVo;
|
return subcontractVo;
|
@ -0,0 +1,53 @@
|
|||||||
|
package org.dromara.manager.changxiemanager;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lcj
|
||||||
|
* @date 2025/6/27 17:02
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/changxie")
|
||||||
|
public class ChangxieController {
|
||||||
|
|
||||||
|
@PostMapping("/callback")
|
||||||
|
public void singleFileUploads(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
|
PrintWriter writer = response.getWriter();
|
||||||
|
Scanner scanner = new Scanner(request.getInputStream(), "GBK").useDelimiter("\\A");
|
||||||
|
String body = scanner.hasNext() ? scanner.next() : "";
|
||||||
|
JSONObject jsonObj = JSONUtil.parseObj(body);
|
||||||
|
if ((long) jsonObj.get("status") == 2 || (long) jsonObj.get("status") == 6) {
|
||||||
|
String downloadUri = (String) jsonObj.get("url");
|
||||||
|
URI uri = URI.create(downloadUri);
|
||||||
|
URL url = uri.toURL();
|
||||||
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
|
InputStream stream = connection.getInputStream();
|
||||||
|
File savedFile = new File("file/resource/changxie");
|
||||||
|
try (FileOutputStream out = new FileOutputStream(savedFile)) {
|
||||||
|
int read;
|
||||||
|
final byte[] bytes = new byte[1024];
|
||||||
|
while ((read = stream.read(bytes)) != -1) {
|
||||||
|
out.write(bytes, 0, read);
|
||||||
|
}
|
||||||
|
out.flush();
|
||||||
|
}
|
||||||
|
connection.disconnect();
|
||||||
|
} else if ((long) jsonObj.get("status") == 3 || (long) jsonObj.get("status") == 7) {
|
||||||
|
writer.write("{\"error\":-1}");
|
||||||
|
}
|
||||||
|
writer.write("{\"error\":0}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,15 +0,0 @@
|
|||||||
package org.dromara.project.mapper;
|
|
||||||
|
|
||||||
import org.dromara.project.domain.BusConstructionUserFile;
|
|
||||||
import org.dromara.project.domain.vo.constructionuserfile.BusConstructionUserFileVo;
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 施工人员文件存储Mapper接口
|
|
||||||
*
|
|
||||||
* @author lcj
|
|
||||||
* @date 2025-04-01
|
|
||||||
*/
|
|
||||||
public interface BusConstructionUserFileMapper extends BaseMapperPlus<BusConstructionUserFile, BusConstructionUserFileVo> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package org.dromara.project.mapper;
|
|
||||||
|
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
|
||||||
import org.dromara.project.domain.vo.constructionuser.BusConstructionUserVo;
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 施工人员Mapper接口
|
|
||||||
*
|
|
||||||
* @author lcj
|
|
||||||
* @date 2025-03-07
|
|
||||||
*/
|
|
||||||
public interface BusConstructionUserMapper extends BaseMapperPlus<BusConstructionUser, BusConstructionUserVo> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package org.dromara.project.mapper;
|
|
||||||
|
|
||||||
import org.dromara.project.domain.BusContractor;
|
|
||||||
import org.dromara.project.domain.vo.contractor.BusContractorVo;
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分包单位Mapper接口
|
|
||||||
*
|
|
||||||
* @author lcj
|
|
||||||
* @date 2025-03-07
|
|
||||||
*/
|
|
||||||
public interface BusContractorMapper extends BaseMapperPlus<BusContractor, BusContractorVo> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package org.dromara.project.mapper;
|
|
||||||
|
|
||||||
import org.dromara.project.domain.BusContractorTool;
|
|
||||||
import org.dromara.project.domain.vo.contractortool.BusContractorToolVo;
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分包方工器具Mapper接口
|
|
||||||
*
|
|
||||||
* @author lcj
|
|
||||||
* @date 2025-06-26
|
|
||||||
*/
|
|
||||||
public interface BusContractorToolMapper extends BaseMapperPlus<BusContractorTool, BusContractorToolVo> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package org.dromara.project.mapper;
|
|
||||||
|
|
||||||
import org.dromara.project.domain.BusSubcontract;
|
|
||||||
import org.dromara.project.domain.vo.subcontract.BusSubcontractVo;
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分包合同Mapper接口
|
|
||||||
*
|
|
||||||
* @author lcj
|
|
||||||
* @date 2025-06-25
|
|
||||||
*/
|
|
||||||
public interface BusSubcontractMapper extends BaseMapperPlus<BusSubcontract, BusSubcontractVo> {
|
|
||||||
|
|
||||||
}
|
|
@ -15,8 +15,9 @@ import org.dromara.common.core.utils.ObjectUtils;
|
|||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.domain.BusAttendance;
|
import org.dromara.project.domain.BusAttendance;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
|
||||||
import org.dromara.project.domain.BusProjectTeamMember;
|
import org.dromara.project.domain.BusProjectTeamMember;
|
||||||
import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum;
|
import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum;
|
||||||
import org.dromara.project.domain.enums.BusAttendanceCommuterEnum;
|
import org.dromara.project.domain.enums.BusAttendanceCommuterEnum;
|
||||||
@ -56,7 +57,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
|||||||
private IBusProjectTeamMemberService projectTeamMemberService;
|
private IBusProjectTeamMemberService projectTeamMemberService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionBlacklistService constructionBlacklistService;
|
private IBusConstructionBlacklistService constructionBlacklistService;
|
||||||
@ -135,11 +136,11 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
|||||||
List<Long> blackList = constructionBlacklistService.queryIdListByProjectId(projectId);
|
List<Long> blackList = constructionBlacklistService.queryIdListByProjectId(projectId);
|
||||||
// 构建查询用户相关信息查询条件
|
// 构建查询用户相关信息查询条件
|
||||||
List<Long> userIdList = constructionUserService.lambdaQuery()
|
List<Long> userIdList = constructionUserService.lambdaQuery()
|
||||||
.eq(BusConstructionUser::getProjectId, projectId)
|
.eq(SubConstructionUser::getProjectId, projectId)
|
||||||
.eq(req.getTeamId() != null, BusConstructionUser::getTeamId, req.getTeamId())
|
.eq(req.getTeamId() != null, SubConstructionUser::getTeamId, req.getTeamId())
|
||||||
.eq(req.getTypeOfWork() != null, BusConstructionUser::getTypeOfWork, req.getTypeOfWork())
|
.eq(req.getTypeOfWork() != null, SubConstructionUser::getTypeOfWork, req.getTypeOfWork())
|
||||||
.notIn(CollUtil.isNotEmpty(blackList), BusConstructionUser::getId, blackList)
|
.notIn(CollUtil.isNotEmpty(blackList), SubConstructionUser::getId, blackList)
|
||||||
.list().stream().map(BusConstructionUser::getId).toList();
|
.list().stream().map(SubConstructionUser::getId).toList();
|
||||||
lqw.in(CollUtil.isNotEmpty(userIdList), BusAttendance::getUserId, userIdList);
|
lqw.in(CollUtil.isNotEmpty(userIdList), BusAttendance::getUserId, userIdList);
|
||||||
Map<Date, List<BusAttendance>> dateListMap = this.list(lqw)
|
Map<Date, List<BusAttendance>> dateListMap = this.list(lqw)
|
||||||
.stream().collect(Collectors.groupingBy(BusAttendance::getClockDate));
|
.stream().collect(Collectors.groupingBy(BusAttendance::getClockDate));
|
||||||
|
@ -15,14 +15,14 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.domain.BusConstructionBlacklist;
|
import org.dromara.project.domain.BusConstructionBlacklist;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.project.domain.BusProjectTeamMember;
|
import org.dromara.project.domain.BusProjectTeamMember;
|
||||||
import org.dromara.project.domain.dto.constructionblacklist.BusConstructionBlacklistCreateReq;
|
import org.dromara.project.domain.dto.constructionblacklist.BusConstructionBlacklistCreateReq;
|
||||||
import org.dromara.project.domain.dto.constructionblacklist.BusConstructionBlacklistQueryReq;
|
import org.dromara.project.domain.dto.constructionblacklist.BusConstructionBlacklistQueryReq;
|
||||||
import org.dromara.project.domain.vo.constructionblacklist.BusConstructionBlacklistVo;
|
import org.dromara.project.domain.vo.constructionblacklist.BusConstructionBlacklistVo;
|
||||||
import org.dromara.project.mapper.BusConstructionBlacklistMapper;
|
import org.dromara.project.mapper.BusConstructionBlacklistMapper;
|
||||||
import org.dromara.project.service.IBusConstructionBlacklistService;
|
import org.dromara.project.service.IBusConstructionBlacklistService;
|
||||||
import org.dromara.project.service.IBusConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.dromara.project.service.IBusProjectTeamMemberService;
|
import org.dromara.project.service.IBusProjectTeamMemberService;
|
||||||
import org.dromara.common.utils.IdCardEncryptorUtil;
|
import org.dromara.common.utils.IdCardEncryptorUtil;
|
||||||
@ -48,7 +48,7 @@ public class BusConstructionBlacklistServiceImpl extends ServiceImpl<BusConstruc
|
|||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Resource
|
@Resource
|
||||||
@ -151,7 +151,7 @@ public class BusConstructionBlacklistServiceImpl extends ServiceImpl<BusConstruc
|
|||||||
if (userId == null) {
|
if (userId == null) {
|
||||||
throw new ServiceException("用户 id 不能为空", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("用户 id 不能为空", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
BusConstructionUser constructionUser = constructionUserService.getById(userId);
|
SubConstructionUser constructionUser = constructionUserService.getById(userId);
|
||||||
if (constructionUser == null) {
|
if (constructionUser == null) {
|
||||||
throw new ServiceException("对应用户不存在", HttpStatus.NOT_FOUND);
|
throw new ServiceException("对应用户不存在", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
@ -27,13 +27,14 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.contractor.domain.SubContractor;
|
||||||
|
import org.dromara.contractor.service.ISubContractorService;
|
||||||
import org.dromara.facility.domain.FacMatrix;
|
import org.dromara.facility.domain.FacMatrix;
|
||||||
import org.dromara.facility.domain.vo.matrix.FacMatrixBySubProjectVo;
|
import org.dromara.facility.domain.vo.matrix.FacMatrixBySubProjectVo;
|
||||||
import org.dromara.facility.service.IFacMatrixService;
|
import org.dromara.facility.service.IFacMatrixService;
|
||||||
import org.dromara.manager.weathermanager.WeatherConstant;
|
import org.dromara.manager.weathermanager.WeatherConstant;
|
||||||
import org.dromara.manager.weathermanager.WeatherManager;
|
import org.dromara.manager.weathermanager.WeatherManager;
|
||||||
import org.dromara.project.constant.BusProjectConstant;
|
import org.dromara.project.constant.BusProjectConstant;
|
||||||
import org.dromara.project.domain.BusContractor;
|
|
||||||
import org.dromara.project.domain.BusProject;
|
import org.dromara.project.domain.BusProject;
|
||||||
import org.dromara.project.domain.BusProjectFile;
|
import org.dromara.project.domain.BusProjectFile;
|
||||||
import org.dromara.project.domain.BusUserProjectRelevancy;
|
import org.dromara.project.domain.BusUserProjectRelevancy;
|
||||||
@ -43,7 +44,6 @@ import org.dromara.project.domain.dto.project.BusProjectQueryReq;
|
|||||||
import org.dromara.project.domain.dto.project.BusProjectUpdateReq;
|
import org.dromara.project.domain.dto.project.BusProjectUpdateReq;
|
||||||
import org.dromara.project.domain.vo.project.*;
|
import org.dromara.project.domain.vo.project.*;
|
||||||
import org.dromara.project.mapper.BusProjectMapper;
|
import org.dromara.project.mapper.BusProjectMapper;
|
||||||
import org.dromara.project.service.IBusContractorService;
|
|
||||||
import org.dromara.project.service.IBusProjectFileService;
|
import org.dromara.project.service.IBusProjectFileService;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.dromara.project.service.IBusUserProjectRelevancyService;
|
import org.dromara.project.service.IBusUserProjectRelevancyService;
|
||||||
@ -83,7 +83,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Resource
|
@Resource
|
||||||
private IBusContractorService contractorService;
|
private ISubContractorService contractorService;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Resource
|
@Resource
|
||||||
@ -270,10 +270,10 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
List<Long> projectIdList = userProjectRelevancyService.listObjs(userProjectRelevancyLqw, obj -> (Long) obj);
|
List<Long> projectIdList = userProjectRelevancyService.listObjs(userProjectRelevancyLqw, obj -> (Long) obj);
|
||||||
List<BusProject> projectList = this.listByIds(projectIdList);
|
List<BusProject> projectList = this.listByIds(projectIdList);
|
||||||
// 获取项目列表下的分包公司列表
|
// 获取项目列表下的分包公司列表
|
||||||
LambdaQueryWrapper<BusContractor> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SubContractor> lqw = new LambdaQueryWrapper<>();
|
||||||
lqw.in(BusContractor::getProjectId, projectIdList);
|
lqw.in(SubContractor::getProjectId, projectIdList);
|
||||||
Map<Long, List<BusContractor>> projectIdContractorList = contractorService.list(lqw).stream()
|
Map<Long, List<SubContractor>> projectIdContractorList = contractorService.list(lqw).stream()
|
||||||
.collect(Collectors.groupingBy(BusContractor::getProjectId));
|
.collect(Collectors.groupingBy(SubContractor::getProjectId));
|
||||||
// 获取封装
|
// 获取封装
|
||||||
return projectList.stream().map(project -> {
|
return projectList.stream().map(project -> {
|
||||||
BusProjectContractorListVo projectContractorListResp = new BusProjectContractorListVo();
|
BusProjectContractorListVo projectContractorListResp = new BusProjectContractorListVo();
|
||||||
@ -281,7 +281,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
projectContractorListResp.setId(project.getId());
|
projectContractorListResp.setId(project.getId());
|
||||||
projectContractorListResp.setProjectName(project.getProjectName());
|
projectContractorListResp.setProjectName(project.getProjectName());
|
||||||
// 获取分包公司列表
|
// 获取分包公司列表
|
||||||
List<BusContractor> contractorList = projectIdContractorList.get(project.getId());
|
List<SubContractor> contractorList = projectIdContractorList.get(project.getId());
|
||||||
if (CollUtil.isEmpty(contractorList)) {
|
if (CollUtil.isEmpty(contractorList)) {
|
||||||
throw new ServiceException("项目:" + project.getProjectName() + "下无分包单位,请创建后再进行操作", HttpStatus.BAD_REQUEST);
|
throw new ServiceException("项目:" + project.getProjectName() + "下无分包单位,请创建后再进行操作", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ import org.dromara.common.core.utils.StringUtils;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.project.domain.BusConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.domain.BusConstructionUserExit;
|
import org.dromara.project.domain.BusConstructionUserExit;
|
||||||
import org.dromara.project.domain.BusProjectTeam;
|
import org.dromara.project.domain.BusProjectTeam;
|
||||||
import org.dromara.project.domain.BusProjectTeamMember;
|
import org.dromara.project.domain.BusProjectTeamMember;
|
||||||
@ -48,7 +49,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
implements IBusProjectTeamMemberService {
|
implements IBusProjectTeamMemberService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IBusProjectTeamService projectTeamService;
|
private IBusProjectTeamService projectTeamService;
|
||||||
@ -139,12 +140,12 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
throw new ServiceException("新增项目班组下的成员失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("新增项目班组下的成员失败,数据库异常", HttpStatus.ERROR);
|
||||||
}
|
}
|
||||||
// 同步修改用户表的team_id字段并添加入场时间
|
// 同步修改用户表的team_id字段并添加入场时间
|
||||||
LambdaUpdateWrapper<BusConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(BusConstructionUser.class)
|
LambdaUpdateWrapper<SubConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(SubConstructionUser.class)
|
||||||
.eq(BusConstructionUser::getId, projectTeamMember.getMemberId())
|
.eq(SubConstructionUser::getId, projectTeamMember.getMemberId())
|
||||||
.set(BusConstructionUser::getTeamId, projectTeamMember.getTeamId())
|
.set(SubConstructionUser::getTeamId, projectTeamMember.getTeamId())
|
||||||
.set(BusConstructionUser::getTeamName, projectTeam.getTeamName())
|
.set(SubConstructionUser::getTeamName, projectTeam.getTeamName())
|
||||||
.set(BusConstructionUser::getEntryDate, new Date())
|
.set(SubConstructionUser::getEntryDate, new Date())
|
||||||
.set(BusConstructionUser::getLeaveDate, null);
|
.set(SubConstructionUser::getLeaveDate, null);
|
||||||
constructionUserService.update(constructionUserLuw);
|
constructionUserService.update(constructionUserLuw);
|
||||||
return projectTeamMember.getId();
|
return projectTeamMember.getId();
|
||||||
}
|
}
|
||||||
@ -176,10 +177,10 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
}
|
}
|
||||||
// 如果修改了班组信息,同步修改用户表的字段
|
// 如果修改了班组信息,同步修改用户表的字段
|
||||||
if (!oldProjectTeamMember.getTeamId().equals(teamId)) {
|
if (!oldProjectTeamMember.getTeamId().equals(teamId)) {
|
||||||
LambdaUpdateWrapper<BusConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(BusConstructionUser.class)
|
LambdaUpdateWrapper<SubConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(SubConstructionUser.class)
|
||||||
.eq(BusConstructionUser::getId, projectTeamMember.getMemberId())
|
.eq(SubConstructionUser::getId, projectTeamMember.getMemberId())
|
||||||
.set(BusConstructionUser::getTeamId, projectTeamMember.getTeamId())
|
.set(SubConstructionUser::getTeamId, projectTeamMember.getTeamId())
|
||||||
.set(BusConstructionUser::getTeamName, projectTeam.getTeamName());
|
.set(SubConstructionUser::getTeamName, projectTeam.getTeamName());
|
||||||
constructionUserService.update(constructionUserLuw);
|
constructionUserService.update(constructionUserLuw);
|
||||||
}
|
}
|
||||||
// 操作数据库
|
// 操作数据库
|
||||||
@ -240,7 +241,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
throw new ServiceException("删除项目班组下的成员失败,数据库异常", HttpStatus.ERROR);
|
throw new ServiceException("删除项目班组下的成员失败,数据库异常", HttpStatus.ERROR);
|
||||||
}
|
}
|
||||||
// 将文件信息保存到数据库
|
// 将文件信息保存到数据库
|
||||||
BusConstructionUser constructionUser = constructionUserService.getById(projectTeamMember.getMemberId());
|
SubConstructionUser constructionUser = constructionUserService.getById(projectTeamMember.getMemberId());
|
||||||
BusConstructionUserExit constructionUserExit = new BusConstructionUserExit();
|
BusConstructionUserExit constructionUserExit = new BusConstructionUserExit();
|
||||||
constructionUserExit.setProjectId(constructionUser.getProjectId());
|
constructionUserExit.setProjectId(constructionUser.getProjectId());
|
||||||
constructionUserExit.setUserId(constructionUser.getId());
|
constructionUserExit.setUserId(constructionUser.getId());
|
||||||
@ -252,10 +253,10 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
constructionUserExit.setRemark(req.getRemark());
|
constructionUserExit.setRemark(req.getRemark());
|
||||||
constructionUserExitService.save(constructionUserExit);
|
constructionUserExitService.save(constructionUserExit);
|
||||||
// 同步修改用户表的team_id字段
|
// 同步修改用户表的team_id字段
|
||||||
LambdaUpdateWrapper<BusConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(BusConstructionUser.class)
|
LambdaUpdateWrapper<SubConstructionUser> constructionUserLuw = Wrappers.lambdaUpdate(SubConstructionUser.class)
|
||||||
.eq(BusConstructionUser::getId, projectTeamMember.getMemberId())
|
.eq(SubConstructionUser::getId, projectTeamMember.getMemberId())
|
||||||
.set(BusConstructionUser::getTeamId, null)
|
.set(SubConstructionUser::getTeamId, null)
|
||||||
.set(BusConstructionUser::getLeaveDate, new Date());
|
.set(SubConstructionUser::getLeaveDate, new Date());
|
||||||
constructionUserService.update(constructionUserLuw);
|
constructionUserService.update(constructionUserLuw);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -276,7 +277,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
BeanUtils.copyProperties(projectTeamMember, projectTeamMemberVo);
|
BeanUtils.copyProperties(projectTeamMember, projectTeamMemberVo);
|
||||||
// 关联获取施工人员信息
|
// 关联获取施工人员信息
|
||||||
Long memberId = projectTeamMember.getMemberId();
|
Long memberId = projectTeamMember.getMemberId();
|
||||||
BusConstructionUser constructionUser = constructionUserService.getById(memberId);
|
SubConstructionUser constructionUser = constructionUserService.getById(memberId);
|
||||||
projectTeamMemberVo.setMemberName(constructionUser.getUserName());
|
projectTeamMemberVo.setMemberName(constructionUser.getUserName());
|
||||||
return projectTeamMemberVo;
|
return projectTeamMemberVo;
|
||||||
}
|
}
|
||||||
@ -303,7 +304,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
String remark = req.getRemark();
|
String remark = req.getRemark();
|
||||||
// 联表查询
|
// 联表查询
|
||||||
if (StringUtils.isNotBlank(memberName)) {
|
if (StringUtils.isNotBlank(memberName)) {
|
||||||
QueryWrapper<BusConstructionUser> constructionUserQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<SubConstructionUser> constructionUserQueryWrapper = new QueryWrapper<>();
|
||||||
constructionUserQueryWrapper.select("id");
|
constructionUserQueryWrapper.select("id");
|
||||||
constructionUserQueryWrapper.like("user_name", memberName);
|
constructionUserQueryWrapper.like("user_name", memberName);
|
||||||
List<Long> constructionUserIdList = constructionUserService.listObjs(constructionUserQueryWrapper, obj -> (Long) obj);
|
List<Long> constructionUserIdList = constructionUserService.listObjs(constructionUserQueryWrapper, obj -> (Long) obj);
|
||||||
@ -339,8 +340,8 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
// 关联查询施工人员信息
|
// 关联查询施工人员信息
|
||||||
Set<Long> teamMemberIdSet = projectTeamMemberList.stream().map(BusProjectTeamMember::getMemberId)
|
Set<Long> teamMemberIdSet = projectTeamMemberList.stream().map(BusProjectTeamMember::getMemberId)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
Map<Long, List<BusConstructionUser>> contractorIdContractorList = constructionUserService.listByIds(teamMemberIdSet).stream()
|
Map<Long, List<SubConstructionUser>> contractorIdContractorList = constructionUserService.listByIds(teamMemberIdSet).stream()
|
||||||
.collect(Collectors.groupingBy(BusConstructionUser::getId));
|
.collect(Collectors.groupingBy(SubConstructionUser::getId));
|
||||||
// 填充信息
|
// 填充信息
|
||||||
List<BusProjectTeamMemberVo> projectTeamMemberVoList = projectTeamMemberList.stream().map(projectTeamMember -> {
|
List<BusProjectTeamMemberVo> projectTeamMemberVoList = projectTeamMemberList.stream().map(projectTeamMember -> {
|
||||||
BusProjectTeamMemberVo projectTeamMemberVo = new BusProjectTeamMemberVo();
|
BusProjectTeamMemberVo projectTeamMemberVo = new BusProjectTeamMemberVo();
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user