From a4fba15a4a0c1e2e219ca679f85125cb73310b72 Mon Sep 17 00:00:00 2001 From: aikai Date: Sat, 17 May 2025 14:37:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(smartfactory):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=90=AC=E8=BF=90=E7=BB=84=E5=B7=A5=E8=B5=84=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 HandlingGroupAmountSpecificationsTotalNumDTO 类用于统计查询 - 在 HandlingGroupAmountSpecificationsService 接口中新增 getTotalNum 方法 - 在 HandlingGroupAmountSpecificationsServiceImpl 中实现 getTotalNum 方法 - 在 HandlingGroupAmountSpecificationsMapper 中添加 getTotalNum 方法的 SQL 查询 - 优化 HandlingGroupAmountSpecificationsPageReqVO 和 HandlingGroupAmountSpecificationsRespVO 类 - 新增 HandlingGroupUserAmountItemVO 类用于展示搬运工明细 - 在 HandlingGroupUserAmountService 接口中新增 getHandlingGroupUserAmountList 和 getByHandlingGroupAmountSpecificationsId 方法 - 在 HandlingGroupUserAmountServiceImpl 中实现新增的接口方法 - 在 HandlingGroupUserAmountMapper 中添加对应的 SQL 查询 --- ...ngGroupAmountSpecificationsController.java | 33 +++++++++++- ...gGroupAmountSpecificationsTotalNumDTO.java | 26 ++++++++++ ...ingGroupAmountSpecificationsPageReqVO.java | 3 ++ ...ndlingGroupAmountSpecificationsRespVO.java | 5 ++ .../HandlingGroupUserAmountController.java | 7 +++ .../vo/HandlingGroupUserAmountItemVO.java | 25 +++++++++ .../admin/staff/StaffController.java | 9 ---- .../staffsalary/StaffSalaryController.java | 10 +--- ...ndlingGroupAmountSpecificationsMapper.java | 10 ++++ .../HandlingGroupUserAmountMapper.java | 14 +++++ ...dlingGroupAmountSpecificationsService.java | 12 ++++- ...gGroupAmountSpecificationsServiceImpl.java | 36 +++++++------ .../HandlingGroupUserAmountService.java | 18 ++++++- .../HandlingGroupUserAmountServiceImpl.java | 18 +++++-- .../service/staff/StaffServiceImpl.java | 8 +++ ...andlingGroupAmountSpecificationsMapper.xml | 52 ++++++++++++++++++- .../HandlingGroupUserAmountMapper.xml | 48 +++++++++++++++++ 17 files changed, 289 insertions(+), 45 deletions(-) create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountItemVO.java diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java index d7604628..f45017c3 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java @@ -1,15 +1,21 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupuseramount.HandlingGroupUserAmountDO; import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService; import cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsService; +import cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount.HandlingGroupUserAmountService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -21,6 +27,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -37,6 +44,8 @@ public class HandlingGroupAmountSpecificationsController { @Resource private HandlingGroupAmountSpecificationsService handlingGroupAmountSpecificationsService; + @Resource + private HandlingGroupUserAmountService handlingGroupUserAmountService; @Resource private FactoryInfoService factoryInfoService; @@ -50,11 +59,20 @@ public class HandlingGroupAmountSpecificationsController { @GetMapping("/getTotalNum") @Operation(summary = "获取合计数") - public CommonResult getTotalNum(@RequestParam(required = false) Long factoryId) { - HandlingGroupAmountSpecificationsTotalNumVO vo = handlingGroupAmountSpecificationsService.getTotalNum(factoryId); + public CommonResult getTotalNum(@Valid HandlingGroupAmountSpecificationsTotalNumDTO dto) { + HandlingGroupAmountSpecificationsTotalNumVO vo = handlingGroupAmountSpecificationsService.getTotalNum(dto); return success(vo); } + + @GetMapping("/getAmountSubtotal") + @Operation(summary = "获取金额小计") + public CommonResult getAmountSubtotal(@RequestParam Integer totalCount, + @RequestParam Long handlingSpecificationsId) { + BigDecimal amount = handlingGroupAmountSpecificationsService.getAmountSubtotal(totalCount, handlingSpecificationsId); + return success(amount); + } + @PostMapping("/batchUpdate") @Operation(summary = "批量更新搬运组工资规格关联") public CommonResult batchUpdate(@Valid @RequestBody HandlingGroupAmountSpecificationsBatchUpdateVO vo) { @@ -88,10 +106,21 @@ public class HandlingGroupAmountSpecificationsController { PageResult result = BeanUtils.toBean(pageResult, HandlingGroupAmountSpecificationsRespVO.class); // 计算合计 - 先根据工厂+搬运组+日期进行分组 Map> map = result.getList().stream().collect(Collectors.groupingBy(a -> a.getFactoryId() + "_" + a.getHandlingGroupId() + "_" + a.getDateStr())); + List ids = result.getList().stream().map(HandlingGroupAmountSpecificationsRespVO::getId).collect(Collectors.toList()); + Map> handlingGroupUserAmountMap = new HashMap<>(); + if (CollUtil.isNotEmpty(ids)) { + List list = handlingGroupUserAmountService.getByHandlingGroupAmountSpecificationsId(ids); + handlingGroupUserAmountMap = list.stream().collect(Collectors.groupingBy(HandlingGroupUserAmountDO::getHandlingGroupAmountSpecificationsId)); + } for (HandlingGroupAmountSpecificationsRespVO handlingGroupAmountSpecificationsDO : result.getList()) { String key = handlingGroupAmountSpecificationsDO.getFactoryId() + "_" + handlingGroupAmountSpecificationsDO.getHandlingGroupId() + "_" + handlingGroupAmountSpecificationsDO.getDateStr(); handlingGroupAmountSpecificationsDO.setTotalAmount(getSumValue(map.get(key), HandlingGroupAmountSpecificationsRespVO::getAmount, BigDecimal::add)); handlingGroupAmountSpecificationsDO.setTotalNum(getSumValue(map.get(key), HandlingGroupAmountSpecificationsRespVO::getTotalCount, Integer::sum)); + List items = handlingGroupUserAmountMap.get(handlingGroupAmountSpecificationsDO.getId()); + if (CollUtil.isNotEmpty(items)) { + List handlingGroupUserAmountItemVOS = BeanUtils.toBean(items, HandlingGroupUserAmountItemVO.class); + handlingGroupAmountSpecificationsDO.setHandlingGroupUserAmountItemVOS(handlingGroupUserAmountItemVOS); + } } return success(result); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java new file mode 100644 index 00000000..7f7c76a6 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Data +@ToString(callSuper = true) +public class HandlingGroupAmountSpecificationsTotalNumDTO { + @Schema(description = "工厂id") + private Long factoryId; + @Schema(description = "规格id") + private Long handlingSpecificationsId; + @Schema(description = "叉车司机名称") + private String forkliftDriverName; + @Schema(description = "搬运工名称") + private String porterName; + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java index 1dacc833..f3590058 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java @@ -28,6 +28,9 @@ public class HandlingGroupAmountSpecificationsPageReqVO extends PageParam { @Schema(description = "叉车司机名称", example = "23178") private String staffName; + @Schema(description = "搬运工名称", example = "23178") + private String porterName; + @Schema(description = "搬运规格id", example = "23178") private Long handlingSpecificationsId; diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVO.java index 9859484a..ee0bc898 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountRespVO; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; @@ -7,6 +9,7 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 搬运组工资规格关联 Response VO") @Data @@ -71,4 +74,6 @@ public class HandlingGroupAmountSpecificationsRespVO { @ExcelProperty("数量小计") private Integer totalNum; + @Schema(description = "搬运工明细列表") + private List handlingGroupUserAmountItemVOS; } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/HandlingGroupUserAmountController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/HandlingGroupUserAmountController.java index 62ed18d3..085de002 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/HandlingGroupUserAmountController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/HandlingGroupUserAmountController.java @@ -85,6 +85,13 @@ public class HandlingGroupUserAmountController { return success(BeanUtils.toBean(pageResult, HandlingGroupUserAmountRespVO.class)); } + @GetMapping("/listAll") + @Operation(summary = "获得搬运组每日个人工资记录列表") + public CommonResult> getHandlingGroupUserAmountList(@Valid HandlingGroupUserAmountPageReqVO pageReqVO) { + List list = handlingGroupUserAmountService.getHandlingGroupUserAmountList(pageReqVO); + return success(BeanUtils.toBean(list, HandlingGroupUserAmountRespVO.class)); + } + @GetMapping("/staffWagesPage") @Operation(summary = "以用户分组工资分页列表") public CommonResult> staffWagesPage(@Valid StaffWagesPageDTO dto) { diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountItemVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountItemVO.java new file mode 100644 index 00000000..5fac8463 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountItemVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ExcelIgnoreUnannotated +public class HandlingGroupUserAmountItemVO { + @Schema(description = "用户id", example = "12639") + @ExcelProperty("用户id") + private Long userId; + + @Schema(description = "用户名称", example = "12639") + @ExcelProperty("用户名称") + private String userName; + + @Schema(description = "搬运组每日个人工资") + @ExcelProperty("搬运组每日个人工资") + private BigDecimal amount; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staff/StaffController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staff/StaffController.java index c4a18295..91007fe8 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staff/StaffController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staff/StaffController.java @@ -55,7 +55,6 @@ public class StaffController { @PostMapping("/create") @Operation(summary = "创建员工") - @PreAuthorize("@ss.hasPermission('factory:staff:create')") public CommonResult createStaff(@Valid @RequestBody StaffSaveReqVO createReqVO) { return success(staffService.createStaff(createReqVO)); } @@ -68,7 +67,6 @@ public class StaffController { @PutMapping("/update") @Operation(summary = "更新员工") - @PreAuthorize("@ss.hasPermission('factory:staff:update')") public CommonResult updateStaff(@Valid @RequestBody StaffSaveReqVO updateReqVO) { staffService.updateStaff(updateReqVO); return success(true); @@ -76,7 +74,6 @@ public class StaffController { @PutMapping("/update-salary") @Operation(summary = "更新员工") - @PreAuthorize("@ss.hasPermission('factory:staff:update')") public CommonResult updateStaffSalary(@RequestBody StaffSalaryUpdateVO updateReqVO) { staffService.updateStaffSalary(updateReqVO); return success(true); @@ -85,7 +82,6 @@ public class StaffController { @DeleteMapping("/delete") @Operation(summary = "删除员工") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('factory:staff:delete')") public CommonResult deleteStaff(@RequestParam("id") Long id) { staffService.deleteStaff(id); return success(true); @@ -94,7 +90,6 @@ public class StaffController { @GetMapping("/get") @Operation(summary = "获得员工") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('factory:staff:query')") public CommonResult getStaff(@RequestParam("id") Long id) { StaffDO staff = staffService.getStaff(id); return success(staff); @@ -104,7 +99,6 @@ public class StaffController { @Operation(summary = "获得指定厂区得员工") @Parameter(name = "factoryId", description = "厂区编号", required = true, example = "1024") @Parameter(name = "isIn", description = "是否获取该厂区得员工", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('factory:staff:query')") public CommonResult> getListByFactory(@RequestParam("factoryId") Long factoryId, @RequestParam("isIn") Boolean isIn) { List staffs = staffService.getListByFactory(factoryId, isIn); @@ -123,7 +117,6 @@ public class StaffController { @GetMapping("/page") @Operation(summary = "获得员工分页") - @PreAuthorize("@ss.hasPermission('factory:staff:query')") public CommonResult> getStaffPage(@Valid StaffPageReqVO pageReqVO) { PageResult pageResult = staffService.getStaffPage(pageReqVO); PageResult result = BeanUtils.toBean(pageResult, StaffRespVO.class); @@ -143,7 +136,6 @@ public class StaffController { @GetMapping("/export-excel") @Operation(summary = "导出员工 Excel") - @PreAuthorize("@ss.hasPermission('factory:staff:export')") @OperateLog(type = EXPORT) public void exportStaffExcel(@Valid StaffPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -193,7 +185,6 @@ public class StaffController { @Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true") }) - @PreAuthorize("@ss.hasPermission('factory:staff:import')") public CommonResult importExcel(@RequestParam("file") MultipartFile file, @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception { List list = ExcelUtils.read(file, StaffImportExcelVO.class); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staffsalary/StaffSalaryController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staffsalary/StaffSalaryController.java index d3627c2c..e41670c6 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staffsalary/StaffSalaryController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/staffsalary/StaffSalaryController.java @@ -39,14 +39,12 @@ public class StaffSalaryController { @PostMapping("/create") @Operation(summary = "创建员工工资") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:create')") public CommonResult createStaff(@Valid @RequestBody StaffSalarySaveReqVO createReqVO) { return success(staffSalaryService.createStaffSalary(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新厂区员工工资") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:update')") public CommonResult updateStaffSalary(@Valid @RequestBody StaffSalarySaveReqVO updateReqVO) { staffSalaryService.updateStaffSalary(updateReqVO); return success(true); @@ -54,7 +52,6 @@ public class StaffSalaryController { @PutMapping("/update-status") @Operation(summary = "更新厂区员工工资状态") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:update')") public CommonResult updateStatus(@RequestBody StaffSalarySaveReqVO updateReqVO) { staffSalaryService.updateStatus(updateReqVO); return success(true); @@ -63,7 +60,6 @@ public class StaffSalaryController { @DeleteMapping("/delete") @Operation(summary = "删除厂区员工工资") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:delete')") public CommonResult deleteStaffSalary(@RequestParam("id") Long id) { staffSalaryService.deleteStaffSalary(id); return success(true); @@ -72,7 +68,6 @@ public class StaffSalaryController { @GetMapping("/get") @Operation(summary = "获得厂区员工工资") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:query')") public CommonResult getStaffSalary(@RequestParam("id") Long id) { StaffSalaryDO staffSalary = staffSalaryService.getStaffSalary(id); @@ -81,7 +76,6 @@ public class StaffSalaryController { @GetMapping("/page") @Operation(summary = "获得厂区员工工资分页") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:query')") public CommonResult> getStaffSalaryPage(@Valid StaffSalaryPageReqVO pageReqVO) { PageResult pageResult = staffSalaryService.getStaffSalaryPage(pageReqVO); return success(pageResult); @@ -89,7 +83,6 @@ public class StaffSalaryController { @GetMapping("/total") @Operation(summary = "获取工资统计") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:query')") public CommonResult getStaffSalaryTotal(@Valid StaffSalaryPageReqVO pageReqVO) { return success(staffSalaryService.getStaffSalaryTotal(pageReqVO)); @@ -97,7 +90,6 @@ public class StaffSalaryController { @GetMapping("/export-excel") @Operation(summary = "导出厂区员工工资 Excel") - @PreAuthorize("@ss.hasPermission('smartfactory:staff-salary:export')") @OperateLog(type = EXPORT) public void exportStaffSalaryExcel(@Valid StaffSalaryPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -107,4 +99,4 @@ public class StaffSalaryController { ExcelUtils.write(response, "厂区员工工资.xls", "数据", StaffSalaryRespVO.class, list); } -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.java index 16ae5735..c33d8ace 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.java @@ -3,7 +3,9 @@ package cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupamountspecif import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsPageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsTotalNumVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -56,4 +58,12 @@ public interface HandlingGroupAmountSpecificationsMapper extends BaseMapperX getHandlingGroupAmountSpecificationsList(@Param("factoryId") Long factoryId, @Param("dateStr") String dateStr, @Param("handlingGroupId") Long handlingGroupId); + + /** + * 获取总金额 + * + * @param dto + * @return + */ + HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(@Param("dto") HandlingGroupAmountSpecificationsTotalNumDTO dto); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java index 72d163a5..5a2057d7 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java @@ -58,4 +58,18 @@ public interface HandlingGroupUserAmountMapper extends BaseMapperX> getListByMonth(@Param("id") Long id, @Param("factoryId") Long factoryId, @Param("dateList") List dateList, @Param("name") String name); + + /** + * 列表 + * @param vo + * @return + */ + List getHandlingGroupUserAmountList(@Param("vo") HandlingGroupUserAmountPageReqVO vo); + + /** + * + * @param handlingGroupAmountSpecificationsIds + * @return + */ + List getByHandlingGroupAmountSpecificationsId(@Param("handlingGroupAmountSpecificationsIds") List handlingGroupAmountSpecificationsIds); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsService.java index 3efd44d3..6258d261 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsService.java @@ -1,10 +1,12 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecifications; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import javax.validation.Valid; +import java.math.BigDecimal; import java.util.List; /** @@ -67,5 +69,13 @@ public interface HandlingGroupAmountSpecificationsService { * @param factoryId * @return */ - HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(Long factoryId); + HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(HandlingGroupAmountSpecificationsTotalNumDTO dto); + + /** + * 获取金额小计 + * @param totalCount + * @param handlingSpecificationsId + * @return + */ + BigDecimal getAmountSubtotal(Integer totalCount, Long handlingSpecificationsId); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java index 00873b6a..46d93a9c 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecific import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupListVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlingspecifications.HandlingSpecificationsDO; @@ -20,12 +21,10 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getSumValue; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; /** @@ -58,7 +57,7 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro @Override public List getHandlingGroupAmountSpecificationsList(Long factoryId, String dateStr, Long handlingGroupId) { - return handlingGroupAmountSpecificationsMapper.getHandlingGroupAmountSpecificationsList(factoryId,dateStr,handlingGroupId); + return handlingGroupAmountSpecificationsMapper.getHandlingGroupAmountSpecificationsList(factoryId, dateStr, handlingGroupId); } @Override @@ -139,15 +138,14 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro continue; } if (handlingSpecificationsDO.getType() == 0) { - totalAmount = new BigDecimal(item.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); + totalAmount = new BigDecimal(handlingGroupAmountSpecificationsBatchCreateItemVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); } else { - totalAmount = new BigDecimal(item.getTotalCount().toString()).multiply(handlingSpecificationsDO.getWeight()) + totalAmount = new BigDecimal(handlingGroupAmountSpecificationsBatchCreateItemVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getWeight()) .multiply(handlingSpecificationsDO.getUnitPrice().multiply(THOUSANDTH)); } item.setAmount(totalAmount); - item.setTotalCount(item.getTotalCount()); + item.setTotalCount(handlingGroupAmountSpecificationsBatchCreateItemVO.getTotalCount()); item.setStaffId(vo.getStaffId()); - item.setHandlingGroupId(vo.getHandlingGroupId()); } handlingGroupAmountSpecificationsMapper.updateBatch(list); } @@ -161,14 +159,20 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro } @Override - public HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(Long factoryId) { - HandlingGroupAmountSpecificationsTotalNumVO vo = new HandlingGroupAmountSpecificationsTotalNumVO(); - List list = handlingGroupAmountSpecificationsMapper.selectList(new LambdaQueryWrapper() - .eq(factoryId != null, HandlingGroupAmountSpecificationsDO::getFactoryId, factoryId)); - BigDecimal amount = getSumValue(list, HandlingGroupAmountSpecificationsDO::getAmount, BigDecimal::add); - Integer num = getSumValue(list, HandlingGroupAmountSpecificationsDO::getTotalCount, Integer::sum); - vo.setNum(num.longValue()); - vo.setAmount(amount); - return vo; + public HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(HandlingGroupAmountSpecificationsTotalNumDTO dto) { + return handlingGroupAmountSpecificationsMapper.getTotalNum(dto); + } + + @Override + public BigDecimal getAmountSubtotal(Integer totalCount, Long handlingSpecificationsId) { + HandlingSpecificationsDO handlingSpecificationsDO = handlingSpecificationsService.getById(handlingSpecificationsId); + BigDecimal totalAmount; + if (handlingSpecificationsDO.getType() == 0) { + totalAmount = new BigDecimal(totalCount.toString()).multiply(handlingSpecificationsDO.getUnitPrice()); + } else { + totalAmount = new BigDecimal(totalCount.toString()).multiply(handlingSpecificationsDO.getWeight()) + .multiply(handlingSpecificationsDO.getUnitPrice().multiply(THOUSANDTH)); + } + return totalAmount; } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java index 9c6b5ecf..11b875ef 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java @@ -7,15 +7,17 @@ import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseram import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountSaveReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.StaffWagesPageVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupuseramount.HandlingGroupUserAmountDO; +import com.baomidou.mybatisplus.extension.service.IService; import javax.validation.Valid; +import java.util.List; /** * 搬运组每日个人工资记录 Service 接口 * * @author 艾楷 */ -public interface HandlingGroupUserAmountService { +public interface HandlingGroupUserAmountService extends IService { /** * 创建搬运组每日个人工资记录 @@ -79,4 +81,18 @@ public interface HandlingGroupUserAmountService { * @return */ HandlingGroupUserAmountMonthVO getListByMonth(Long id, Long factoryId, Integer type, String time, String name); + + /** + * 列表 + * @param pageReqVO + * @return + */ + List getHandlingGroupUserAmountList(HandlingGroupUserAmountPageReqVO pageReqVO); + + /** + * + * @param handlingGroupAmountSpecificationsIds + * @return + */ + List getByHandlingGroupAmountSpecificationsId(List handlingGroupAmountSpecificationsIds); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java index 7ef6de3e..d8a81842 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java @@ -11,16 +11,14 @@ import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupuseramou import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsMapper; import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupuseramount.HandlingGroupUserAmountMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 搬运组每日个人工资记录 Service 实现类 @@ -29,7 +27,7 @@ import java.util.Map; */ @Service @Validated -public class HandlingGroupUserAmountServiceImpl implements HandlingGroupUserAmountService { +public class HandlingGroupUserAmountServiceImpl extends ServiceImpl implements HandlingGroupUserAmountService { @Resource private HandlingGroupUserAmountMapper handlingGroupUserAmountMapper; @@ -136,5 +134,15 @@ public class HandlingGroupUserAmountServiceImpl implements HandlingGroupUserAmou return vo; } + @Override + public List getHandlingGroupUserAmountList(HandlingGroupUserAmountPageReqVO pageReqVO) { + return handlingGroupUserAmountMapper.getHandlingGroupUserAmountList(pageReqVO); + } + + @Override + public List getByHandlingGroupAmountSpecificationsId(List handlingGroupAmountSpecificationsIds) { + return handlingGroupUserAmountMapper.getByHandlingGroupAmountSpecificationsId(handlingGroupAmountSpecificationsIds); + } + } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java index 3ca59e71..bd762f9c 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java @@ -72,6 +72,14 @@ public class StaffServiceImpl implements StaffService { throw exception(STAFF_NOT_EXISTS); } + // 校验用户名、身份证号是否已经存在 + Long cunt = staffMapper.selectCount(new LambdaQueryWrapperX() + .neIfPresent(StaffDO::getId, updateReqVO.getId()) + .eqIfPresent(StaffDO::getIdCard, updateReqVO.getIdCard())); + if (cunt > 0) { + throw exception(USER_USERNAME_EXISTS); + } + // 身份证号是否已经存在 validateUserForCreate(null, null, null, updateReqVO.getIdCard()); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml index 26004ceb..686be192 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml @@ -21,6 +21,10 @@ LEFT JOIN sf_handling_specifications AS b ON a.handling_specifications_id = b.id LEFT JOIN sf_staff AS c ON c.id = a.staff_id left join sf_handling_group as d on a.handling_group_id = d.id + + left join sf_handling_group_user_amount as e on a.id = e.handling_group_amount_specifications_id + left join sf_staff as g on g.id = e.user_id + a.deleted = 0 and b.deleted = 0 @@ -36,10 +40,21 @@ AND a.factory_id = #{vo.factoryId} - - and a.date_str like concat('%', #{vo.dateStr}, '%') + + and g.nick_name like concat('%', #{vo.porterName}, '%') + + + + and STR_TO_DATE( a.date_str, '%Y-%m-%d' ) >= #{vo.createTime[0]} + + + and STR_TO_DATE( a.date_str, '%Y-%m-%d' ) <= #{vo.createTime[1]} + + + group by a.id + + diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupuseramount/HandlingGroupUserAmountMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupuseramount/HandlingGroupUserAmountMapper.xml index b9ad4544..1a2a9722 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupuseramount/HandlingGroupUserAmountMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupuseramount/HandlingGroupUserAmountMapper.xml @@ -101,4 +101,52 @@ GROUP BY a.user_id; + +