From 346716c3ffd97733bb3eb4ee504b14af074ade88 Mon Sep 17 00:00:00 2001 From: aikai Date: Wed, 2 Apr 2025 17:26:36 +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=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=8C=89=E6=9C=88=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20HandlingGroupUserAmountMonthVO=20=E5=92=8C?= =?UTF-8?q?=20HandlingGroupUserAmountMonthItemVO=20=E7=B1=BB=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E6=8C=89=E6=9C=88=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C?= =?UTF-8?q?-=20=E5=9C=A8=20HandlingGroupUserAmountService=20=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20getListByMonth=20=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=8C=89=E6=9C=88=E6=9F=A5=E8=AF=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20-=20=E5=9C=A8=20HandlingGroupUserAmountMapper=20?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=20getListByMonth=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E7=94=A8=E4=BA=8E=E8=8E=B7=E5=8F=96=E6=8C=89=E6=9C=88?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=20-=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BA=86=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E9=80=9A=E8=BF=87=20Map=20=E7=BB=93=E6=9E=84=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=8C=89=E6=9C=88=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/dept/DeptController.java | 8 +++ .../system/service/dept/DeptService.java | 10 +++ .../system/service/dept/DeptServiceImpl.java | 8 +++ ...ngGroupAmountSpecificationsController.java | 16 ++++- ...AmountSpecificationsBatchCreateItemVO.java | 20 ++++++ ...roupAmountSpecificationsBatchCreateVO.java | 20 ++++++ ...ingGroupAmountSpecificationsPageReqVO.java | 3 + ...ndlingGroupAmountSpecificationsRespVO.java | 3 + ...ingGroupAmountSpecificationsSaveReqVO.java | 3 + .../HandlingGroupUserAmountController.java | 58 ++++++++--------- .../HandlingGroupUserAmountMonthItemVO.java | 17 +++++ .../vo/HandlingGroupUserAmountMonthVO.java | 16 +++++ .../vo/HandlingGroupUserAmountSaveReqVO.java | 3 + .../HandlingGroupAmountSpecificationsDO.java | 4 ++ .../HandlingGroupUserAmountDO.java | 4 ++ .../HandlingGroupUserAmountMapper.java | 13 ++++ ...dlingGroupAmountSpecificationsService.java | 7 +++ ...gGroupAmountSpecificationsServiceImpl.java | 50 +++++++++++++++ .../HandlingGroupUserAmountService.java | 11 ++++ .../HandlingGroupUserAmountServiceImpl.java | 62 +++++++++++++++++-- .../HandlingGroupUserAmountMapper.xml | 24 +++++++ 21 files changed, 322 insertions(+), 38 deletions(-) create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateItemVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthItemVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthVO.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java index fc68f016..25afd054 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java @@ -65,6 +65,14 @@ public class DeptController { return success(list); } + @GetMapping("/getFactoryDeptListByLeaderUserId") + @Operation(summary = "获取当前用户所负责的工厂部门列表") + public CommonResult> getFactoryDeptListByLeaderUserId() { + Long id = getLoginUserId(); + List list = deptService.getFactoryDeptByLeaderId(id); + return success(list); + } + @PutMapping("update") @Operation(summary = "更新部门") @PreAuthorize("@ss.hasPermission('system:dept:update')") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java index 45b6c329..8bde5a0f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java @@ -187,6 +187,7 @@ public interface DeptService { /** * 获取指定类型的部门列表 + * * @param type 部门类型 * @return 部门列表 */ @@ -194,7 +195,16 @@ public interface DeptService { /** * 获取工厂部门 + * * @return 部门列表 */ List getFactoryDept(); + + /** + * 获取当前登录用户负责的工厂部门 + * + * @param id + * @return + */ + List getFactoryDeptByLeaderId(Long id); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java index 7dedab46..f2e9aa15 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -404,6 +404,14 @@ public class DeptServiceImpl implements DeptService { .isNotNull(DeptDO::getFactoryId)); } + @Override + public List getFactoryDeptByLeaderId(Long id) { + return deptMapper.selectList(new LambdaQueryWrapperX() + .eq(DeptDO::getLeaderUserId, id) + .eq(DeptDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) + .isNotNull(DeptDO::getFactoryId)); + } + @Override public List getDeptList(DeptApiDTO dto) { List list = deptMapper.selectList(new LambdaQueryWrapperX() 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 c71343e9..502339ac 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 @@ -6,6 +6,7 @@ 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.vo.HandlingGroupAmountSpecificationsBatchCreateVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsSaveReqVO; @@ -36,11 +37,20 @@ public class HandlingGroupAmountSpecificationsController { @Resource private HandlingGroupAmountSpecificationsService handlingGroupAmountSpecificationsService; - @PostMapping("/createOrEdit") + @PostMapping("/batchCreate") @Operation(summary = "创建搬运组工资规格关联") @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:create')") - public CommonResult createOrEdit(@Valid @RequestBody HandlingGroupAmountSpecificationsSaveReqVO createReqVO) { - handlingGroupAmountSpecificationsService.createOrEdit(createReqVO); + public CommonResult batchCreate(@Valid @RequestBody HandlingGroupAmountSpecificationsBatchCreateVO vo) { + handlingGroupAmountSpecificationsService.batchCreate(vo); + return success(true); + } + + + @PostMapping("/update") + @Operation(summary = "更新搬运组工资规格关联") + @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:update')") + public CommonResult update(@Valid @RequestBody HandlingGroupAmountSpecificationsSaveReqVO createReqVO) { + handlingGroupAmountSpecificationsService.updateHandlingGroupAmountSpecifications(createReqVO); return success(true); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateItemVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateItemVO.java new file mode 100644 index 00000000..b7496764 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateItemVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class HandlingGroupAmountSpecificationsBatchCreateItemVO { + + @Schema(description = "搬运规格id", example = "23178") + @NotNull(message = "搬运规格不能为空") + private Long handlingSpecificationsId; + + @Schema(description = "数量", example = "15611") + @NotNull(message = "数量不能为空") + private Integer totalCount; + + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateVO.java new file mode 100644 index 00000000..1fed4d53 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchCreateVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class HandlingGroupAmountSpecificationsBatchCreateVO { + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + + @Schema(description = "日期 格式 yyyy-MM-dd") + @NotNull(message = "日期不能为空") + private String dateStr; + + @Schema(description = "子列表") + private List itemVOS; +} 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 69731c78..195ba63d 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 @@ -18,6 +18,9 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class HandlingGroupAmountSpecificationsPageReqVO extends PageParam { + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + @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 ce3991e0..55db8b15 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 @@ -17,6 +17,9 @@ public class HandlingGroupAmountSpecificationsRespVO { @ExcelProperty("主键id") private Long id; + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + @Schema(description = "搬运规格id", example = "23178") @ExcelProperty("搬运规格id") 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/HandlingGroupAmountSpecificationsSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsSaveReqVO.java index 6fb442c0..ec9ca974 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsSaveReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsSaveReqVO.java @@ -12,6 +12,9 @@ public class HandlingGroupAmountSpecificationsSaveReqVO { @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9721") private Long id; + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + @Schema(description = "搬运规格id", example = "23178") @NotNull(message = "搬运规格不能为空") private Long handlingSpecificationsId; 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 b2b2d113..18a4391b 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 @@ -1,34 +1,29 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount; -import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.dto.StaffWagesPageDTO; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - +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.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.dto.StaffWagesPageDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.*; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupuseramount.HandlingGroupUserAmountDO; import cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount.HandlingGroupUserAmountService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 搬运组每日个人工资记录") @RestController @@ -41,7 +36,6 @@ public class HandlingGroupUserAmountController { @PostMapping("/createOrEdit") @Operation(summary = "创建搬运组每日个人工资记录") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-user-amount:create')") public CommonResult createOrEdit(@Valid @RequestBody HandlingGroupUserAmountSaveReqVO createReqVO) { handlingGroupUserAmountService.createOrEdit(createReqVO); return success(true); @@ -49,7 +43,6 @@ public class HandlingGroupUserAmountController { @PutMapping("/update") @Operation(summary = "更新搬运组每日个人工资记录") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-user-amount:update')") public CommonResult updateHandlingGroupUserAmount(@Valid @RequestBody HandlingGroupUserAmountSaveReqVO updateReqVO) { handlingGroupUserAmountService.updateHandlingGroupUserAmount(updateReqVO); return success(true); @@ -58,7 +51,6 @@ public class HandlingGroupUserAmountController { @DeleteMapping("/delete") @Operation(summary = "删除搬运组每日个人工资记录") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-user-amount:delete')") public CommonResult deleteHandlingGroupUserAmount(@RequestParam("id") Long id) { handlingGroupUserAmountService.deleteHandlingGroupUserAmount(id); return success(true); @@ -67,15 +59,24 @@ public class HandlingGroupUserAmountController { @GetMapping("/get") @Operation(summary = "获得搬运组每日个人工资记录") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-user-amount:query')") public CommonResult getHandlingGroupUserAmount(@RequestParam("id") Long id) { HandlingGroupUserAmountDO handlingGroupUserAmount = handlingGroupUserAmountService.getHandlingGroupUserAmount(id); return success(BeanUtils.toBean(handlingGroupUserAmount, HandlingGroupUserAmountRespVO.class)); } + + @GetMapping("/getListByMonth") + @Operation(summary = "获得搬运组工资记录 按月搜索") + @Parameter(name = "time", description = "日期 格式(yyyy-MM) 默认当前月", required = true, example = "1024") + public CommonResult getListByMonth(@RequestParam(value = "name", required = false) String name, + @RequestParam(value = "time", required = true) String time, + @RequestParam(value = "factoryId", required = false) Long factoryId) { + HandlingGroupUserAmountMonthVO vo = handlingGroupUserAmountService.getListByMonth(factoryId, time, name); + return success(vo); + } + @GetMapping("/page") @Operation(summary = "获得搬运组每日个人工资记录分页") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-user-amount:query')") public CommonResult> getHandlingGroupUserAmountPage(@Valid HandlingGroupUserAmountPageReqVO pageReqVO) { PageResult pageResult = handlingGroupUserAmountService.getHandlingGroupUserAmountPage(pageReqVO); return success(BeanUtils.toBean(pageResult, HandlingGroupUserAmountRespVO.class)); @@ -90,15 +91,14 @@ public class HandlingGroupUserAmountController { @GetMapping("/export-excel") @Operation(summary = "导出搬运组每日个人工资记录 Excel") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-user-amount:export')") @OperateLog(type = EXPORT) public void exportHandlingGroupUserAmountExcel(@Valid HandlingGroupUserAmountPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = handlingGroupUserAmountService.getHandlingGroupUserAmountPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "搬运组每日个人工资记录.xls", "数据", HandlingGroupUserAmountRespVO.class, - BeanUtils.toBean(list, HandlingGroupUserAmountRespVO.class)); + BeanUtils.toBean(list, HandlingGroupUserAmountRespVO.class)); } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthItemVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthItemVO.java new file mode 100644 index 00000000..b712b1c8 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthItemVO.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Data +public class HandlingGroupUserAmountMonthItemVO { + @Schema(description = "用户id", example = "15129") + private Long userId; + + @Schema(description = "列表", example = "22544") + private List> contentList; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthVO.java new file mode 100644 index 00000000..efc985a7 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountMonthVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class HandlingGroupUserAmountMonthVO { + @Schema(description = "表头") + private Map headers; + + @Schema(description = "列表值") + private List list; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountSaveReqVO.java index a39fb6d1..be58f666 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountSaveReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountSaveReqVO.java @@ -17,6 +17,9 @@ public class HandlingGroupUserAmountSaveReqVO { @Schema(description = "用户id", example = "12639") private Long userId; + @Schema(description = "工厂id", example = "12639") + private Long factoryId; + @Schema(description = "搬运组工资规格关联id", example = "27617") private Long handlingGroupAmountSpecificationsId; diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsDO.java index cf3600ce..fcb6b047 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsDO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsDO.java @@ -31,6 +31,10 @@ public class HandlingGroupAmountSpecificationsDO extends BaseDO { */ @TableId private Long id; + /** + * 工厂id + */ + private Long factoryId; /** * 搬运规格id */ diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupuseramount/HandlingGroupUserAmountDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupuseramount/HandlingGroupUserAmountDO.java index 3307a013..2d13799e 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupuseramount/HandlingGroupUserAmountDO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroupuseramount/HandlingGroupUserAmountDO.java @@ -44,6 +44,10 @@ public class HandlingGroupUserAmountDO extends BaseDO { * 搬运组工资规格关联id */ private Long handlingGroupAmountSpecificationsId; + /** + * 工厂id + */ + private Long factoryId; /** * 日期 格式 yyyy-MM-dd */ 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 656f4c6f..2f6be599 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 @@ -12,6 +12,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + /** * 搬运组每日个人工资记录 Mapper * @@ -45,4 +49,13 @@ public interface HandlingGroupUserAmountMapper extends BaseMapperX staffWagesPage(@Param("page") Page page, @Param("dto") StaffWagesPageDTO dto); + + /** + * 获取月工资列表 + * @param factoryId + * @param dateList + * @param name + * @return + */ + List> getListByMonth(@Param("factoryId") Long factoryId, @Param("dateList") List dateList, @Param("name") String name); } 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 1e68870a..d51d49d0 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,6 +1,7 @@ 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.vo.HandlingGroupAmountSpecificationsBatchCreateVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsSaveReqVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; @@ -58,4 +59,10 @@ public interface HandlingGroupAmountSpecificationsService { * @param createReqVO */ void createOrEdit(@Valid HandlingGroupAmountSpecificationsSaveReqVO createReqVO); + + /** + * 批量新增 + * @param vo + */ + void batchCreate(@Valid HandlingGroupAmountSpecificationsBatchCreateVO vo); } 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 42053976..a048cf76 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,12 +3,15 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecific import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsBatchCreateItemVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsBatchCreateVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsSaveReqVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlingspecifications.HandlingSpecificationsDO; import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsMapper; import cn.iocoder.yudao.module.smartfactory.service.handlingspecifications.HandlingSpecificationsService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -16,6 +19,10 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.CANNOT_FIND_THE_CORRESPONDING_FACTORY_HANDLING_SPECIFICATION; @@ -49,6 +56,20 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro public void updateHandlingGroupAmountSpecifications(HandlingGroupAmountSpecificationsSaveReqVO updateReqVO) { // 更新 HandlingGroupAmountSpecificationsDO updateObj = BeanUtils.toBean(updateReqVO, HandlingGroupAmountSpecificationsDO.class); + HandlingSpecificationsDO handlingSpecificationsDO = handlingSpecificationsService.getById(updateObj.getHandlingSpecificationsId()); + if (handlingSpecificationsDO == null) { + throw exception(CANNOT_FIND_THE_CORRESPONDING_FACTORY_HANDLING_SPECIFICATION); + } + BigDecimal totalAmount; + if (handlingSpecificationsDO.getType() == 0) { + totalAmount = new BigDecimal(updateReqVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); + } else { + totalAmount = new BigDecimal(updateReqVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getWeight()) + .multiply(handlingSpecificationsDO.getUnitPrice().multiply(THOUSANDTH)); + } + // 插入 + HandlingGroupAmountSpecificationsDO handlingGroupAmountSpecifications = BeanUtils.toBean(updateReqVO, HandlingGroupAmountSpecificationsDO.class); + handlingGroupAmountSpecifications.setAmount(totalAmount); handlingGroupAmountSpecificationsMapper.updateById(updateObj); } @@ -90,4 +111,33 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro handlingGroupAmountSpecificationsMapper.insertOrUpdate(handlingGroupAmountSpecifications); } + @Override + public void batchCreate(HandlingGroupAmountSpecificationsBatchCreateVO vo) { + List list = new ArrayList<>(); + List handlingSpecificationsIds = vo.getItemVOS().stream().map(HandlingGroupAmountSpecificationsBatchCreateItemVO::getHandlingSpecificationsId).collect(Collectors.toList()); + List handlingSpecificationsDOS = handlingSpecificationsService.list(new LambdaQueryWrapper() + .in(HandlingSpecificationsDO::getId, handlingSpecificationsIds)); + Map map = handlingSpecificationsDOS.stream().collect(Collectors.toMap(HandlingSpecificationsDO::getId, item -> item)); + for (HandlingGroupAmountSpecificationsBatchCreateItemVO itemVO : vo.getItemVOS()) { + HandlingGroupAmountSpecificationsDO handlingGroupAmountSpecificationsDO = new HandlingGroupAmountSpecificationsDO(); + BigDecimal totalAmount; + HandlingSpecificationsDO handlingSpecificationsDO = map.get(itemVO.getHandlingSpecificationsId()); + if (handlingSpecificationsDO == null) { + continue; + } + if (handlingSpecificationsDO.getType() == 0) { + totalAmount = new BigDecimal(itemVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); + } else { + totalAmount = new BigDecimal(itemVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getWeight()) + .multiply(handlingSpecificationsDO.getUnitPrice().multiply(THOUSANDTH)); + } + handlingGroupAmountSpecificationsDO.setFactoryId(vo.getFactoryId()); + handlingGroupAmountSpecificationsDO.setDateStr(vo.getDateStr()); + handlingGroupAmountSpecificationsDO.setHandlingSpecificationsId(itemVO.getHandlingSpecificationsId()); + handlingGroupAmountSpecificationsDO.setAmount(totalAmount); + handlingGroupAmountSpecificationsDO.setTotalCount(itemVO.getTotalCount()); + list.add(handlingGroupAmountSpecificationsDO); + } + handlingGroupAmountSpecificationsMapper.insertBatch(list); + } } 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 7dce3e23..c4fbf9b9 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 @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.dto.StaffWagesPageDTO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountMonthVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountSaveReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.StaffWagesPageVO; @@ -68,4 +69,14 @@ public interface HandlingGroupUserAmountService { * @return */ PageResult staffWagesPage(@Valid StaffWagesPageDTO dto); + + /** + * 获得搬运组工资记录 按月搜索 + * + * @param factoryId + * @param time + * @param name + * @return + */ + HandlingGroupUserAmountMonthVO getListByMonth(Long factoryId, String time, String name); } 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 b9339e1e..447cec38 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 @@ -1,14 +1,14 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.dto.StaffWagesPageDTO; -import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountPageReqVO; -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.controller.admin.handlinggroupuseramount.vo.*; +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.dal.dataobject.handlingspecifications.HandlingSpecificationsDO; +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 org.springframework.stereotype.Service; @@ -16,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.*; /** * 搬运组每日个人工资记录 Service 实现类 @@ -28,6 +30,10 @@ public class HandlingGroupUserAmountServiceImpl implements HandlingGroupUserAmou @Resource private HandlingGroupUserAmountMapper handlingGroupUserAmountMapper; + @Resource + private HandlingGroupAmountSpecificationsMapper handlingGroupAmountSpecificationsMapper; + private static final String NAME = "姓名"; + private static final String TOTAL_AMOUNT = "总金额"; @Override public Long createHandlingGroupUserAmount(HandlingGroupUserAmountSaveReqVO createReqVO) { @@ -58,22 +64,66 @@ public class HandlingGroupUserAmountServiceImpl implements HandlingGroupUserAmou @Override public PageResult getHandlingGroupUserAmountPage(HandlingGroupUserAmountPageReqVO pageReqVO) { - IPage page = handlingGroupUserAmountMapper.getHandlingGroupUserAmountPage(MyBatisUtils.buildPage(pageReqVO) ,pageReqVO); + IPage page = handlingGroupUserAmountMapper.getHandlingGroupUserAmountPage(MyBatisUtils.buildPage(pageReqVO), pageReqVO); return new PageResult<>(page.getRecords(), page.getTotal()); } @Override @Transactional(rollbackFor = Exception.class) public void createOrEdit(HandlingGroupUserAmountSaveReqVO createReqVO) { + HandlingGroupAmountSpecificationsDO handlingGroupAmountSpecificationsDO = handlingGroupAmountSpecificationsMapper.selectById(createReqVO.getHandlingGroupAmountSpecificationsId()); // 插入 + createReqVO.setFactoryId(handlingGroupAmountSpecificationsDO.getFactoryId()); HandlingGroupUserAmountDO handlingGroupUserAmount = BeanUtils.toBean(createReqVO, HandlingGroupUserAmountDO.class); handlingGroupUserAmountMapper.insertOrUpdate(handlingGroupUserAmount); } @Override public PageResult staffWagesPage(StaffWagesPageDTO dto) { - IPage page = handlingGroupUserAmountMapper.staffWagesPage(MyBatisUtils.buildPage(dto) ,dto); + IPage page = handlingGroupUserAmountMapper.staffWagesPage(MyBatisUtils.buildPage(dto), dto); return new PageResult<>(page.getRecords(), page.getTotal()); } + @Override + public HandlingGroupUserAmountMonthVO getListByMonth(Long factoryId, String time, String name) { + HandlingGroupUserAmountMonthVO vo = new HandlingGroupUserAmountMonthVO(); + Map headers = new HashMap<>(); + // -- 根据yyyy-MM获取到该月第一天时间 - 再获取到最后一天 - 完了后组装表头 + String[] times = time.split("-"); + LocalDateTime startTime = LocalDateTime.of(Integer.parseInt(times[0]), Integer.parseInt(times[1]), 1, 0, 0, 0); + LocalDateTime endTime = startTime.plusMonths(1).minusDays(1); + List dateList = DateUtils.betweenDayList(startTime, endTime); + headers.put(1, NAME); + int num = 1; + for (String date : dateList) { + num++; + headers.put(num, date); + } + headers.put(num + 1, TOTAL_AMOUNT); + // - 插入表头 + vo.setHeaders(headers); + + List> map = handlingGroupUserAmountMapper.getListByMonth(factoryId, dateList, name); + List list = new ArrayList<>(); + List> contentList = new ArrayList<>(); + for (Map item : map) { + HandlingGroupUserAmountMonthItemVO itemVO = new HandlingGroupUserAmountMonthItemVO(); + itemVO.setUserId((Long) item.get("userId")); + Map itemMap = new HashMap<>(); + itemMap.put(1, item.get("nickName").toString()); + num = 1; + for (String date : dateList) { + num++; + itemMap.put(num, item.get(date).toString()); + } + itemMap.put(num + 1, item.get("totalAmount").toString()); + contentList.add(itemMap); + itemVO.setContentList(contentList); + list.add(itemVO); + } + vo.setList(list); + return vo; + } + + } 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 3d3e0b5b..b3f35541 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 @@ -71,4 +71,28 @@ group by a.id +