From 8aef77308644f1ad634702ba7d3e9df33ac3994b Mon Sep 17 00:00:00 2001 From: aikai Date: Fri, 16 May 2025 11:59:11 +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=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加搬运组列表、分页、新增、修改、删除等接口 - 实现搬运组相关数据结构和持久化 - 优化搬运组工资规格关联相关功能,支持批量操作和合计数计算 - 更新员工列表接口,增加工作类型筛选功能 --- .../HandlingGroupController.java | 95 ++++++++++ .../handlinggroup/vo/HandlingGroupListVO.java | 21 +++ .../vo/HandlingGroupPageReqVO.java | 28 +++ .../handlinggroup/vo/HandlingGroupRespVO.java | 35 ++++ .../vo/HandlingGroupSaveReqVO.java | 23 +++ ...ngGroupAmountSpecificationsController.java | 74 ++++---- ...AmountSpecificationsBatchCreateItemVO.java | 4 + ...roupAmountSpecificationsBatchCreateVO.java | 5 +- ...ngGroupAmountSpecificationsBatchDelVO.java | 21 +++ ...roupAmountSpecificationsBatchUpdateVO.java | 27 +++ ...ingGroupAmountSpecificationsPageReqVO.java | 7 + ...ndlingGroupAmountSpecificationsRespVO.java | 24 +++ ...ngGroupAmountSpecificationsTotalNumVO.java | 17 ++ .../vo/HandlingGroupUserAmountPageReqVO.java | 3 + .../admin/staff/StaffController.java | 5 +- .../handlinggroup/HandlingGroupDO.java | 42 +++++ .../HandlingGroupAmountSpecificationsDO.java | 32 +++- .../HandlingGroupUserAmountDO.java | 7 + .../handlinggroup/HandlingGroupMapper.java | 39 ++++ ...ndlingGroupAmountSpecificationsMapper.java | 12 ++ .../handlinggroup/HandlingGroupService.java | 56 ++++++ .../HandlingGroupServiceImpl.java | 63 +++++++ ...dlingGroupAmountSpecificationsService.java | 67 +++---- ...gGroupAmountSpecificationsServiceImpl.java | 166 ++++++++++-------- .../service/staff/StaffService.java | 3 +- .../service/staff/StaffServiceImpl.java | 3 +- .../handlinggroup/HandlingGroupMapper.xml | 28 +++ ...andlingGroupAmountSpecificationsMapper.xml | 40 ++++- .../HandlingGroupUserAmountMapper.xml | 3 + 29 files changed, 791 insertions(+), 159 deletions(-) create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/HandlingGroupController.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupListVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupPageReqVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupRespVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupSaveReqVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchDelVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchUpdateVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsTotalNumVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroup/HandlingGroupDO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroup/HandlingGroupMapper.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupService.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupServiceImpl.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroup/HandlingGroupMapper.xml diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/HandlingGroupController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/HandlingGroupController.java new file mode 100644 index 00000000..a6697ac6 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/HandlingGroupController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup; + +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.handlinggroup.vo.HandlingGroupPageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupRespVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup.HandlingGroupDO; +import cn.iocoder.yudao.module.smartfactory.service.handlinggroup.HandlingGroupService; +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; +import org.springframework.security.access.prepost.PreAuthorize; +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 +@RequestMapping("/smartfactory/handling-group") +@Validated +public class HandlingGroupController { + + @Resource + private HandlingGroupService handlingGroupService; + + @PostMapping("/create") + @Operation(summary = "创建搬运组") + public CommonResult createHandlingGroup(@Valid @RequestBody HandlingGroupSaveReqVO createReqVO) { + return success(handlingGroupService.createHandlingGroup(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新搬运组") + public CommonResult updateHandlingGroup(@Valid @RequestBody HandlingGroupSaveReqVO updateReqVO) { + handlingGroupService.updateHandlingGroup(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除搬运组") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult deleteHandlingGroup(@RequestParam("id") Long id) { + handlingGroupService.deleteHandlingGroup(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得搬运组") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getHandlingGroup(@RequestParam("id") Long id) { + HandlingGroupDO handlingGroup = handlingGroupService.getHandlingGroup(id); + return success(BeanUtils.toBean(handlingGroup, HandlingGroupRespVO.class)); + } + + @GetMapping("/getAllByFactoryId") + @Operation(summary = "根据工程id获得搬运组列表") + public CommonResult> getAllByFactoryId(@RequestParam("factoryId") Long factoryId) { + List list = handlingGroupService.list(new LambdaQueryWrapper().eq(HandlingGroupDO::getFactoryId, factoryId)); + return success(BeanUtils.toBean(list, HandlingGroupRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得搬运组分页") + public CommonResult> getHandlingGroupPage(@Valid HandlingGroupPageReqVO pageReqVO) { + PageResult pageResult = handlingGroupService.getHandlingGroupPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, HandlingGroupRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出搬运组 Excel") + @OperateLog(type = EXPORT) + public void exportHandlingGroupExcel(@Valid HandlingGroupPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = handlingGroupService.getHandlingGroupPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "搬运组.xls", "数据", HandlingGroupRespVO.class, + BeanUtils.toBean(list, HandlingGroupRespVO.class)); + } + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupListVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupListVO.java new file mode 100644 index 00000000..90a9f77d --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupListVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo; + +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsBatchCreateItemVO; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@ExcelIgnoreUnannotated +public class HandlingGroupListVO { + @Schema(description = "搬运组id", example = "27617") + private Long handlingGroupId; + + @Schema(description = "叉车司机id", example = "27617") + private Long staffId; + + @Schema(description = "规格/数量列表") + private List itemList; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupPageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupPageReqVO.java new file mode 100644 index 00000000..f5e70c7f --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +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; + +@Schema(description = "管理后台 - 搬运组分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class HandlingGroupPageReqVO extends PageParam { + + @Schema(description = "工厂id", example = "5268") + private Long factoryId; + + @Schema(description = "搬运组名称", example = "芋艿") + private String handlingGroupName; + + @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/handlinggroup/vo/HandlingGroupRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupRespVO.java new file mode 100644 index 00000000..2702a5a4 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupRespVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.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.time.LocalDateTime; + +@Schema(description = "管理后台 - 搬运组 Response VO") +@Data +@ExcelIgnoreUnannotated +public class HandlingGroupRespVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9657") + @ExcelProperty("主键id") + private Long id; + + @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5268") + @ExcelProperty("工厂id") + private Long factoryId; + + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "5268") + @ExcelProperty("工厂名称") + private String factoryName; + + @Schema(description = "搬运组名称", example = "芋艿") + @ExcelProperty("搬运组名称") + private String handlingGroupName; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupSaveReqVO.java new file mode 100644 index 00000000..61f4911d --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroup/vo/HandlingGroupSaveReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 搬运组新增/修改 Request VO") +@Data +public class HandlingGroupSaveReqVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9657") + private Long id; + + @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5268") + @NotNull(message = "工厂id不能为空") + private Long factoryId; + + @Schema(description = "搬运组名称", example = "芋艿") + private String handlingGroupName; + +} 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 bcba09b7..d7604628 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,24 +1,18 @@ 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.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; -import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; +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.service.factoryinfo.FactoryInfoService; import cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsService; 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.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,13 +20,13 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.math.BigDecimal; import java.util.List; import java.util.Map; -import java.util.Set; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getSumValue; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 搬运组工资规格关联") @@ -48,64 +42,62 @@ public class HandlingGroupAmountSpecificationsController { private FactoryInfoService factoryInfoService; @PostMapping("/batchCreate") - @Operation(summary = "创建搬运组工资规格关联") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:create')") + @Operation(summary = "批量创建搬运组工资规格关联") public CommonResult batchCreate(@Valid @RequestBody HandlingGroupAmountSpecificationsBatchCreateVO vo) { handlingGroupAmountSpecificationsService.batchCreate(vo); return success(true); } + @GetMapping("/getTotalNum") + @Operation(summary = "获取合计数") + public CommonResult getTotalNum(@RequestParam(required = false) Long factoryId) { + HandlingGroupAmountSpecificationsTotalNumVO vo = handlingGroupAmountSpecificationsService.getTotalNum(factoryId); + return success(vo); + } - @PostMapping("/update") - @Operation(summary = "更新搬运组工资规格关联") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:update')") - public CommonResult update(@Valid @RequestBody HandlingGroupAmountSpecificationsSaveReqVO createReqVO) { - handlingGroupAmountSpecificationsService.updateHandlingGroupAmountSpecifications(createReqVO); + @PostMapping("/batchUpdate") + @Operation(summary = "批量更新搬运组工资规格关联") + public CommonResult batchUpdate(@Valid @RequestBody HandlingGroupAmountSpecificationsBatchUpdateVO vo) { + handlingGroupAmountSpecificationsService.batchUpdate(vo); return success(true); } - @DeleteMapping("/delete") - @Operation(summary = "删除搬运组工资规格关联") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:delete')") - public CommonResult deleteHandlingGroupAmountSpecifications(@RequestParam("id") Long id) { - handlingGroupAmountSpecificationsService.deleteHandlingGroupAmountSpecifications(id); + @PostMapping("/batchDelete") + @Operation(summary = "批量删除搬运组工资规格关联") + public CommonResult batchDelete(@RequestBody HandlingGroupAmountSpecificationsBatchDelVO vo) { + handlingGroupAmountSpecificationsService.batchDelete(vo); return success(true); } @GetMapping("/get") @Operation(summary = "获得搬运组工资规格关联") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:query')") - public CommonResult getHandlingGroupAmountSpecifications(@RequestParam("id") Long id) { - HandlingGroupAmountSpecificationsDO handlingGroupAmountSpecifications = handlingGroupAmountSpecificationsService.getHandlingGroupAmountSpecifications(id); + @Parameter(name = "factoryId", description = "工厂id", required = true, example = "1024") + @Parameter(name = "dateStr", description = "日期", required = true, example = "1024") + @Parameter(name = "handlingGroupId", description = "搬运组id", required = true, example = "1024") + public CommonResult> getHandlingGroupAmountSpecifications(@RequestParam Long factoryId, + @RequestParam String dateStr, + @RequestParam Long handlingGroupId) { + List handlingGroupAmountSpecifications = handlingGroupAmountSpecificationsService.getHandlingGroupAmountSpecificationsList(factoryId, dateStr, handlingGroupId); return success(BeanUtils.toBean(handlingGroupAmountSpecifications, HandlingGroupAmountSpecificationsRespVO.class)); } @GetMapping("/page") @Operation(summary = "获得搬运组工资规格关联分页") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:query')") public CommonResult> getHandlingGroupAmountSpecificationsPage(@Valid HandlingGroupAmountSpecificationsPageReqVO pageReqVO) { PageResult pageResult = handlingGroupAmountSpecificationsService.getHandlingGroupAmountSpecificationsPage(pageReqVO); PageResult result = BeanUtils.toBean(pageResult, HandlingGroupAmountSpecificationsRespVO.class); - if (CollUtil.isNotEmpty(result.getList())) { - - // 获取工厂信息 - Set factoryIds = convertSet(result.getList(), HandlingGroupAmountSpecificationsRespVO::getFactoryId); - Map factoryMap = convertMap(factoryInfoService.getFactoryList(factoryIds), FactoryInfoDO::getId); - - result.getList().forEach(data -> { - // 设置工厂名称 - data.setFactoryName(factoryMap.get(data.getFactoryId()) != null ? factoryMap.get(data.getFactoryId()).getShortName() : null); - }); + // 计算合计 - 先根据工厂+搬运组+日期进行分组 + Map> map = result.getList().stream().collect(Collectors.groupingBy(a -> a.getFactoryId() + "_" + a.getHandlingGroupId() + "_" + a.getDateStr())); + 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)); } - return success(result); } @GetMapping("/export-excel") @Operation(summary = "导出搬运组工资规格关联 Excel") - @PreAuthorize("@ss.hasPermission('smartfactory:handling-group-amount-specifications:export')") @OperateLog(type = EXPORT) public void exportHandlingGroupAmountSpecificationsExcel(@Valid HandlingGroupAmountSpecificationsPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -113,7 +105,7 @@ public class HandlingGroupAmountSpecificationsController { List list = handlingGroupAmountSpecificationsService.getHandlingGroupAmountSpecificationsPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "搬运组工资规格关联.xls", "数据", HandlingGroupAmountSpecificationsRespVO.class, - BeanUtils.toBean(list, HandlingGroupAmountSpecificationsRespVO.class)); + BeanUtils.toBean(list, HandlingGroupAmountSpecificationsRespVO.class)); } } 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 index b7496764..1ca6cb7c 100644 --- 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 @@ -8,6 +8,10 @@ import javax.validation.constraints.NotNull; @Data public class HandlingGroupAmountSpecificationsBatchCreateItemVO { + @Schema(description = "id", example = "23178") + @NotNull(message = "id") + private Long id; + @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/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 index 1fed4d53..ad4eddb5 100644 --- 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 @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupListVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -15,6 +16,6 @@ public class HandlingGroupAmountSpecificationsBatchCreateVO { @NotNull(message = "日期不能为空") private String dateStr; - @Schema(description = "子列表") - private List itemVOS; + @Schema(description = "搬运组列表") + private List handlingGroupList; } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchDelVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchDelVO.java new file mode 100644 index 00000000..07eb8256 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchDelVO.java @@ -0,0 +1,21 @@ +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 HandlingGroupAmountSpecificationsBatchDelVO { + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + + @Schema(description = "日期 格式 yyyy-MM-dd") + @NotNull(message = "日期不能为空") + private String dateStr; + + @Schema(description = "搬运组id", example = "27617") + private Long handlingGroupId; + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchUpdateVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchUpdateVO.java new file mode 100644 index 00000000..ad77500b --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsBatchUpdateVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupListVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class HandlingGroupAmountSpecificationsBatchUpdateVO { + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + + @Schema(description = "日期 格式 yyyy-MM-dd") + @NotNull(message = "日期不能为空") + private String dateStr; + + @Schema(description = "搬运组id", example = "27617") + private Long handlingGroupId; + + @Schema(description = "叉车司机id", example = "27617") + private Long staffId; + + @Schema(description = "规格/数量列表") + private List itemList; +} 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 195ba63d..1dacc833 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 @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; import cn.iocoder.yudao.framework.common.pojo.PageParam; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,6 +22,12 @@ public class HandlingGroupAmountSpecificationsPageReqVO extends PageParam { @Schema(description = "工厂id", example = "23178") private Long factoryId; + @Schema(description = "搬运组id", example = "23178") + private Long handlingGroupId; + + @Schema(description = "叉车司机名称", example = "23178") + private String staffName; + @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 2fcde91f..9859484a 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 @@ -23,6 +23,22 @@ public class HandlingGroupAmountSpecificationsRespVO { @Schema(description = "工厂名称", example = "23178") private String factoryName; + @Schema(description = "搬运组id", example = "23178") + @ExcelProperty("搬运组id") + private Long handlingGroupId; + + @Schema(description = "搬运组名称", example = "23178") + @ExcelProperty("搬运组名称") + private String handlingGroupName; + + @Schema(description = "叉车司机名称", example = "23178") + @ExcelProperty("叉车司机名称") + private String staffName; + + @Schema(description = "叉车司机id", example = "23178") + @ExcelProperty("叉车司机id") + private Long staffId; + @Schema(description = "搬运规格id", example = "23178") @ExcelProperty("搬运规格id") private Long handlingSpecificationsId; @@ -47,4 +63,12 @@ public class HandlingGroupAmountSpecificationsRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + + @Schema(description = "金额小计") + @ExcelProperty("金额小计") + private BigDecimal totalAmount; + @Schema(description = "数量小计") + @ExcelProperty("数量小计") + private Integer totalNum; + } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsTotalNumVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsTotalNumVO.java new file mode 100644 index 00000000..38b93cdb --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsTotalNumVO.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import java.math.BigDecimal; + +@Data +@ToString(callSuper = true) +public class HandlingGroupAmountSpecificationsTotalNumVO { + @Schema(description = "数量") + private Long num; + + @Schema(description = "总金额") + private BigDecimal amount; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountPageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountPageReqVO.java index 4b623c32..b131da31 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountPageReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountPageReqVO.java @@ -22,6 +22,9 @@ public class HandlingGroupUserAmountPageReqVO extends PageParam { @Schema(description = "搬运组工资规格关联id", example = "27617") private Long handlingGroupAmountSpecificationsId; + @Schema(description = "搬运组id", example = "27617") + private Long handlingGroupId; + @Schema(description = "日期 格式 yyyy-MM-dd") private String dateStr; 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 6f6d742c..c4a18295 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 @@ -115,8 +115,9 @@ public class StaffController { @GetMapping("/getListByFactoryId") @Operation(summary = "获得指定厂员工") public CommonResult> getListByFactoryId(@RequestParam("factoryId") Long factoryId, - @RequestParam(value = "nickName", required = false) String nickName) { - List staffs = staffService.getListByFactoryId(factoryId, nickName); + @RequestParam(value = "nickName", required = false) String nickName, + @RequestParam(value = "workTypeId", required = false) Long workTypeId) { + List staffs = staffService.getListByFactoryId(factoryId, nickName, workTypeId); return success(BeanUtils.toBean(staffs, StaffRespVO.class)); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroup/HandlingGroupDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroup/HandlingGroupDO.java new file mode 100644 index 00000000..caaf3bb6 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/handlinggroup/HandlingGroupDO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 搬运组 DO + * + * @author 艾楷 + */ +@TableName("sf_handling_group") +@KeySequence("sf_handling_group_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HandlingGroupDO extends BaseDO { + + /** + * 主键id + */ + @TableId + private Long id; + /** + * 工厂id + */ + private Long factoryId; + /** + * 搬运组名称 + */ + private String handlingGroupName; + + @TableField(exist = false) + private String factoryName; + +} 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 fcb6b047..28f725fb 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 @@ -39,9 +39,16 @@ public class HandlingGroupAmountSpecificationsDO extends BaseDO { * 搬运规格id */ private Long handlingSpecificationsId; + /** + * 搬运组id + */ + private Long handlingGroupId; + + /** + * 叉车司机id + */ + private Long staffId; - @TableField(exist = false) - private String handlingSpecificationsName; /** * 数量 */ @@ -55,4 +62,25 @@ public class HandlingGroupAmountSpecificationsDO extends BaseDO { */ private BigDecimal amount; + + /** + * 工厂名称 + */ + @TableField(exist = false) + private String factoryName; + /** + * 搬运组名称 + */ + @TableField(exist = false) + private String handlingGroupName; + /** + * 叉车司机名称 + */ + @TableField(exist = false) + private String staffName; + /** + * 搬运规格名称 + */ + @TableField(exist = false) + private String handlingSpecificationsName; } 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 2d13799e..77d7a8b8 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 @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.math.BigDecimal; @@ -44,6 +45,12 @@ public class HandlingGroupUserAmountDO extends BaseDO { * 搬运组工资规格关联id */ private Long handlingGroupAmountSpecificationsId; + + /** + * 搬运组id + */ + private Long handlingGroupId; + /** * 工厂id */ diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroup/HandlingGroupMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroup/HandlingGroupMapper.java new file mode 100644 index 00000000..68e1f959 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroup/HandlingGroupMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroup; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup.HandlingGroupDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.*; +import org.apache.ibatis.annotations.Param; + +/** + * 搬运组 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface HandlingGroupMapper extends BaseMapperX { + + default PageResult selectPage(HandlingGroupPageReqVO reqVO) { + + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(HandlingGroupDO::getFactoryId, reqVO.getFactoryId()) + .likeIfPresent(HandlingGroupDO::getHandlingGroupName, reqVO.getHandlingGroupName()) + .betweenIfPresent(HandlingGroupDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(HandlingGroupDO::getId)); + } + + /** + * + * @param page + * @param vo + * @return + */ + IPage selectPageList(@Param("page") Page page, @Param("vo") HandlingGroupPageReqVO vo); +} 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 3e4626aa..16ae5735 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 @@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 搬运组工资规格关联 Mapper * @@ -44,4 +46,14 @@ public interface HandlingGroupAmountSpecificationsMapper extends BaseMapperX getHandlingGroupAmountSpecificationsList(@Param("factoryId") Long factoryId, @Param("dateStr") String dateStr, @Param("handlingGroupId") Long handlingGroupId); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupService.java new file mode 100644 index 00000000..6d5ee873 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.smartfactory.service.handlinggroup; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.*; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup.HandlingGroupDO; +import com.baomidou.mybatisplus.extension.service.IService; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 搬运组 Service 接口 + * + * @author 艾楷 + */ +public interface HandlingGroupService extends IService { + + /** + * 创建搬运组 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createHandlingGroup(@Valid HandlingGroupSaveReqVO createReqVO); + + /** + * 更新搬运组 + * + * @param updateReqVO 更新信息 + */ + void updateHandlingGroup(@Valid HandlingGroupSaveReqVO updateReqVO); + + /** + * 删除搬运组 + * + * @param id 编号 + */ + void deleteHandlingGroup(Long id); + + /** + * 获得搬运组 + * + * @param id 编号 + * @return 搬运组 + */ + HandlingGroupDO getHandlingGroup(Long id); + + /** + * 获得搬运组分页 + * + * @param pageReqVO 分页查询 + * @return 搬运组分页 + */ + PageResult getHandlingGroupPage(HandlingGroupPageReqVO pageReqVO); + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupServiceImpl.java new file mode 100644 index 00000000..c5fdb3c3 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroup/HandlingGroupServiceImpl.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.smartfactory.service.handlinggroup; + +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.handlinggroup.vo.HandlingGroupPageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup.HandlingGroupDO; +import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroup.HandlingGroupMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 搬运组 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class HandlingGroupServiceImpl extends ServiceImpl implements HandlingGroupService { + + @Resource + private HandlingGroupMapper handlingGroupMapper; + + @Override + public Long createHandlingGroup(HandlingGroupSaveReqVO createReqVO) { + // 插入 + HandlingGroupDO handlingGroup = BeanUtils.toBean(createReqVO, HandlingGroupDO.class); + handlingGroupMapper.insert(handlingGroup); + // 返回 + return handlingGroup.getId(); + } + + @Override + public void updateHandlingGroup(HandlingGroupSaveReqVO updateReqVO) { + // 更新 + HandlingGroupDO updateObj = BeanUtils.toBean(updateReqVO, HandlingGroupDO.class); + handlingGroupMapper.updateById(updateObj); + } + + @Override + public void deleteHandlingGroup(Long id) { + // 删除 + handlingGroupMapper.deleteById(id); + } + + + @Override + public HandlingGroupDO getHandlingGroup(Long id) { + return handlingGroupMapper.selectById(id); + } + + @Override + public PageResult getHandlingGroupPage(HandlingGroupPageReqVO pageReqVO) { + IPage pageResult = handlingGroupMapper.selectPageList(MyBatisUtils.buildPage(pageReqVO), pageReqVO); + return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); + } + +} 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 d51d49d0..3efd44d3 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,12 +1,11 @@ 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.controller.admin.handlinggroupamountspecifications.vo.*; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import javax.validation.Valid; +import java.util.List; /** * 搬运组工资规格关联 Service 接口 @@ -15,28 +14,6 @@ import javax.validation.Valid; */ public interface HandlingGroupAmountSpecificationsService { - /** - * 创建搬运组工资规格关联 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createHandlingGroupAmountSpecifications(@Valid HandlingGroupAmountSpecificationsSaveReqVO createReqVO); - - /** - * 更新搬运组工资规格关联 - * - * @param updateReqVO 更新信息 - */ - void updateHandlingGroupAmountSpecifications(@Valid HandlingGroupAmountSpecificationsSaveReqVO updateReqVO); - - /** - * 删除搬运组工资规格关联 - * - * @param id 编号 - */ - void deleteHandlingGroupAmountSpecifications(Long id); - /** * 获得搬运组工资规格关联 * @@ -45,6 +22,16 @@ public interface HandlingGroupAmountSpecificationsService { */ HandlingGroupAmountSpecificationsDO getHandlingGroupAmountSpecifications(Long id); + /** + * 获取详情 - 多条 + * + * @param factoryId + * @param dateStr + * @param handlingGroupId + * @return + */ + List getHandlingGroupAmountSpecificationsList(Long factoryId, String dateStr, Long handlingGroupId); + /** * 获得搬运组工资规格关联分页 * @@ -53,16 +40,32 @@ public interface HandlingGroupAmountSpecificationsService { */ PageResult getHandlingGroupAmountSpecificationsPage(HandlingGroupAmountSpecificationsPageReqVO pageReqVO); - /** - * 新增编辑 - * - * @param createReqVO - */ - void createOrEdit(@Valid HandlingGroupAmountSpecificationsSaveReqVO createReqVO); - /** * 批量新增 + * * @param vo */ void batchCreate(@Valid HandlingGroupAmountSpecificationsBatchCreateVO vo); + + /** + * 批量更新 + * + * @param vo + */ + void batchUpdate(@Valid HandlingGroupAmountSpecificationsBatchUpdateVO vo); + + /** + * 批量删除 + * + * @param vo + */ + void batchDelete(HandlingGroupAmountSpecificationsBatchDelVO vo); + + /** + * 获取合计 + * + * @param factoryId + * @return + */ + HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(Long factoryId); } 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 493fb5da..00873b6a 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 @@ -1,12 +1,9 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecifications; 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.controller.admin.handlinggroup.vo.HandlingGroupListVO; +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; import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsMapper; @@ -18,19 +15,18 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; 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; 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.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getSumValue; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; -import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.CANNOT_FIND_THE_CORRESPONDING_FACTORY_HANDLING_SPECIFICATION; /** * 搬运组工资规格关联 Service 实现类 @@ -54,49 +50,17 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro private static final BigDecimal THOUSANDTH = new BigDecimal("0.001"); - @Override - public Long createHandlingGroupAmountSpecifications(HandlingGroupAmountSpecificationsSaveReqVO createReqVO) { - // 插入 - HandlingGroupAmountSpecificationsDO handlingGroupAmountSpecifications = BeanUtils.toBean(createReqVO, HandlingGroupAmountSpecificationsDO.class); - handlingGroupAmountSpecificationsMapper.insert(handlingGroupAmountSpecifications); - - // 返回 - return handlingGroupAmountSpecifications.getId(); - } - - @Override - 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); - } - - @Override - public void deleteHandlingGroupAmountSpecifications(Long id) { - // 删除 - handlingGroupAmountSpecificationsMapper.deleteById(id); - } - @Override public HandlingGroupAmountSpecificationsDO getHandlingGroupAmountSpecifications(Long id) { return handlingGroupAmountSpecificationsMapper.getHandlingGroupAmountSpecifications(id); } + @Override + public List getHandlingGroupAmountSpecificationsList(Long factoryId, String dateStr, Long handlingGroupId) { + return handlingGroupAmountSpecificationsMapper.getHandlingGroupAmountSpecificationsList(factoryId,dateStr,handlingGroupId); + } + @Override public PageResult getHandlingGroupAmountSpecificationsPage(HandlingGroupAmountSpecificationsPageReqVO pageReqVO) { // 判断当前登录人是否属于工厂主管 @@ -110,53 +74,101 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); } - @Override - @Transactional(rollbackFor = Exception.class) - public void createOrEdit(HandlingGroupAmountSpecificationsSaveReqVO createReqVO) { - HandlingSpecificationsDO handlingSpecificationsDO = handlingSpecificationsService.getById(createReqVO.getHandlingSpecificationsId()); - if (handlingSpecificationsDO == null) { - throw exception(CANNOT_FIND_THE_CORRESPONDING_FACTORY_HANDLING_SPECIFICATION); - } - BigDecimal totalAmount; - if (handlingSpecificationsDO.getType() == 0) { - totalAmount = new BigDecimal(createReqVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); - } else { - totalAmount = new BigDecimal(createReqVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getWeight()) - .multiply(handlingSpecificationsDO.getUnitPrice().multiply(THOUSANDTH)); - } - // 插入 - HandlingGroupAmountSpecificationsDO handlingGroupAmountSpecifications = BeanUtils.toBean(createReqVO, HandlingGroupAmountSpecificationsDO.class); - handlingGroupAmountSpecifications.setAmount(totalAmount); - 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 handlingSpecificationsIds = vo.getHandlingGroupList().stream() + .flatMap(group -> group.getItemList().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(); + + for (HandlingGroupListVO handlingGroupListVO : vo.getHandlingGroupList()) { + for (HandlingGroupAmountSpecificationsBatchCreateItemVO itemVO : handlingGroupListVO.getItemList()) { + 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()); + handlingGroupAmountSpecificationsDO.setHandlingGroupId(handlingGroupListVO.getHandlingGroupId()); + handlingGroupAmountSpecificationsDO.setStaffId(handlingGroupListVO.getStaffId()); + list.add(handlingGroupAmountSpecificationsDO); + } + } + handlingGroupAmountSpecificationsMapper.insertBatch(list); + } + + @Override + public void batchUpdate(HandlingGroupAmountSpecificationsBatchUpdateVO vo) { + // 先通过 工厂 + 日期 + 组id 获取到当前编辑的搬运组 + List list = handlingGroupAmountSpecificationsMapper.selectList(new LambdaQueryWrapper() + .eq(HandlingGroupAmountSpecificationsDO::getFactoryId, vo.getFactoryId()) + .eq(HandlingGroupAmountSpecificationsDO::getHandlingGroupId, vo.getHandlingGroupId()) + .eq(HandlingGroupAmountSpecificationsDO::getDateStr, vo.getDateStr())); + + List handlingSpecificationsIds = vo.getItemList().stream().map(HandlingGroupAmountSpecificationsBatchCreateItemVO::getHandlingSpecificationsId).distinct().collect(Collectors.toList()); + List handlingSpecificationsDOS = handlingSpecificationsService.list(new LambdaQueryWrapper() + .in(HandlingSpecificationsDO::getId, handlingSpecificationsIds)); + Map map = handlingSpecificationsDOS.stream().collect(Collectors.toMap(HandlingSpecificationsDO::getId, item -> item)); + Map handlingGroupAmountSpecificationsMap = vo.getItemList().stream() + .collect(Collectors.toMap(HandlingGroupAmountSpecificationsBatchCreateItemVO::getId, item -> item)); + + for (HandlingGroupAmountSpecificationsDO item : list) { BigDecimal totalAmount; - HandlingSpecificationsDO handlingSpecificationsDO = map.get(itemVO.getHandlingSpecificationsId()); + HandlingGroupAmountSpecificationsBatchCreateItemVO handlingGroupAmountSpecificationsBatchCreateItemVO + = handlingGroupAmountSpecificationsMap.get(item.getId()); + item.setHandlingSpecificationsId(handlingGroupAmountSpecificationsBatchCreateItemVO.getHandlingSpecificationsId()); + HandlingSpecificationsDO handlingSpecificationsDO = map.get(item.getHandlingSpecificationsId()); if (handlingSpecificationsDO == null) { continue; } if (handlingSpecificationsDO.getType() == 0) { - totalAmount = new BigDecimal(itemVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); + totalAmount = new BigDecimal(item.getTotalCount().toString()).multiply(handlingSpecificationsDO.getUnitPrice()); } else { - totalAmount = new BigDecimal(itemVO.getTotalCount().toString()).multiply(handlingSpecificationsDO.getWeight()) + totalAmount = new BigDecimal(item.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); + item.setAmount(totalAmount); + item.setTotalCount(item.getTotalCount()); + item.setStaffId(vo.getStaffId()); + item.setHandlingGroupId(vo.getHandlingGroupId()); } - handlingGroupAmountSpecificationsMapper.insertBatch(list); + handlingGroupAmountSpecificationsMapper.updateBatch(list); + } + + @Override + public void batchDelete(HandlingGroupAmountSpecificationsBatchDelVO vo) { + handlingGroupAmountSpecificationsMapper.delete(new LambdaQueryWrapper() + .eq(HandlingGroupAmountSpecificationsDO::getFactoryId, vo.getFactoryId()) + .eq(HandlingGroupAmountSpecificationsDO::getHandlingGroupId, vo.getHandlingGroupId()) + .eq(HandlingGroupAmountSpecificationsDO::getDateStr, vo.getDateStr())); + } + + @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; } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java index 098ed76b..cd7e3b33 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java @@ -112,9 +112,10 @@ public interface StaffService { * * @param factoryId * @param nickName + * @param workTypeId * @return */ - List getListByFactoryId(Long factoryId, String nickName); + List getListByFactoryId(Long factoryId, String nickName, Long workTypeId); /** * 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 f8bbd4f3..3ca59e71 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 @@ -254,9 +254,10 @@ public class StaffServiceImpl implements StaffService { } @Override - public List getListByFactoryId(Long factoryId, String nickName) { + public List getListByFactoryId(Long factoryId, String nickName, Long workTypeId) { return staffMapper.selectList(new LambdaQueryWrapperX() .eq(factoryId != null, StaffDO::getFactoryId, factoryId) + .eq(workTypeId != null, StaffDO::getWorkTypeId, workTypeId) .like(StrUtil.isNotEmpty(nickName), StaffDO::getNickName, nickName)); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroup/HandlingGroupMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroup/HandlingGroupMapper.xml new file mode 100644 index 00000000..66db8c87 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroup/HandlingGroupMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + 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 2a063af9..26004ceb 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 @@ -12,15 +12,27 @@ + 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 6e109881..b9ad4544 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 @@ -21,6 +21,9 @@ AND a.user_id = #{vo.userId} + + AND a.handling_group_id = #{vo.handlingGroupId} + AND a.handling_group_amount_specifications_id= #{vo.handlingGroupAmountSpecificationsId}