diff --git a/yudao-module-crm/.flattened-pom.xml b/yudao-module-crm/.flattened-pom.xml deleted file mode 100644 index f8227050..00000000 --- a/yudao-module-crm/.flattened-pom.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - 4.0.0 - - cn.iocoder.cloud - yudao - 2.0.0-jdk8-snapshot - - cn.iocoder.cloud - yudao-module-crm - 2.0.0-jdk8-snapshot - pom - ${project.artifactId} - infra 模块,主要提供两块能力: - 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 - 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 - - yudao-module-crm-api - yudao-module-crm-biz - - diff --git a/yudao-module-crm/yudao-module-crm-api/.flattened-pom.xml b/yudao-module-crm/yudao-module-crm-api/.flattened-pom.xml deleted file mode 100644 index 34f1a85b..00000000 --- a/yudao-module-crm/yudao-module-crm-api/.flattened-pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 4.0.0 - - cn.iocoder.cloud - yudao-module-crm - 2.0.0-jdk8-snapshot - - cn.iocoder.cloud - yudao-module-crm-api - 2.0.0-jdk8-snapshot - ${project.artifactId} - infra 模块 API,暴露给其它模块调用 - - - cn.iocoder.cloud - yudao-common - - - org.springdoc - springdoc-openapi-ui - provided - - - org.springframework.boot - spring-boot-starter-validation - true - - - org.springframework.cloud - spring-cloud-starter-openfeign - true - - - diff --git a/yudao-module-crm/yudao-module-crm-biz/.flattened-pom.xml b/yudao-module-crm/yudao-module-crm-biz/.flattened-pom.xml deleted file mode 100644 index cb436732..00000000 --- a/yudao-module-crm/yudao-module-crm-biz/.flattened-pom.xml +++ /dev/null @@ -1,153 +0,0 @@ - - - 4.0.0 - - cn.iocoder.cloud - yudao-module-crm - 2.0.0-jdk8-snapshot - - cn.iocoder.cloud - yudao-module-crm-biz - 2.0.0-jdk8-snapshot - ${project.artifactId} - infra 模块,主要提供两块能力: - 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 - 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 - - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - cn.iocoder.cloud - yudao-module-crm-api - ${revision} - - - cn.iocoder.cloud - yudao-module-product-api - ${revision} - - - cn.iocoder.cloud - yudao-module-system-api - ${revision} - - - cn.iocoder.cloud - yudao-spring-boot-starter-banner - - - cn.iocoder.cloud - yudao-spring-boot-starter-biz-operatelog - - - cn.iocoder.cloud - yudao-spring-boot-starter-biz-tenant - - - cn.iocoder.cloud - yudao-spring-boot-starter-biz-error-code - - - cn.iocoder.cloud - yudao-spring-boot-starter-security - - - cn.iocoder.cloud - yudao-spring-boot-starter-websocket - - - cn.iocoder.cloud - yudao-spring-boot-starter-mybatis - - - com.baomidou - mybatis-plus-generator - - - cn.iocoder.cloud - yudao-spring-boot-starter-redis - - - cn.iocoder.cloud - yudao-spring-boot-starter-rpc - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-config - - - cn.iocoder.cloud - yudao-spring-boot-starter-job - - - cn.iocoder.cloud - yudao-spring-boot-starter-mq - - - cn.iocoder.cloud - yudao-spring-boot-starter-test - test - - - cn.iocoder.cloud - yudao-spring-boot-starter-excel - - - org.apache.velocity - velocity-engine-core - - - cn.smallbun.screw - screw-core - - - cn.iocoder.cloud - yudao-spring-boot-starter-monitor - - - de.codecentric - spring-boot-admin-starter-server - - - cn.iocoder.cloud - yudao-spring-boot-starter-file - - - cn.iocoder.cloud - yudao-module-bpm-api - 2.0.0-jdk8-snapshot - compile - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - ${spring.boot.version} - - - - repackage - - - - - - maven-compiler-plugin - - 8 - 8 - - - - - diff --git a/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java b/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java index 0c11893e..75102e8a 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java +++ b/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java @@ -41,5 +41,7 @@ public interface ErrorCodeConstants { ErrorCode CANNOT_FIND_THE_CORRESPONDING_FACTORY_HANDLING_SPECIFICATION = new ErrorCode(1_000_005_001, "找不到对应的工厂搬运规格"); ErrorCode FACTORY_HANDLING_SPECIFICATION_EXISTS = new ErrorCode(1_000_005_002, "工厂搬运规格已存在"); ErrorCode SPECIFICATION_USER_AMOUNT_NOT_EXISTS = new ErrorCode(1_000_005_003, "工厂当前月份存在未分配人员数据!"); + ErrorCode ADDED_A_HANDLING_GROUP_WITH_DUPLICATE_DATA = new ErrorCode(1_000_005_004, "新增数据有重复的搬运组!"); + ErrorCode NEW_DATA_AND_OLD_DATA_HAVE_DUPLICATE_HANDLING_GROUP = new ErrorCode(1_000_005_005, "新增数据与老数据有重复的搬运组!"); } 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 983b8154..028ab308 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 @@ -7,6 +7,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.dto.HandlingGroupAmountSpecificationsPageReqDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; @@ -31,7 +32,6 @@ import java.util.Map; 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.getSumValue; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 搬运组工资规格关联") @@ -87,11 +87,11 @@ public class HandlingGroupAmountSpecificationsController { @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) { + 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)); + return success(BeanUtils.toBean(handlingGroupAmountSpecifications, HandlingGroupAmountSpecificationsDetailsRespVO.class)); } @GetMapping("/page") @@ -109,8 +109,8 @@ public class HandlingGroupAmountSpecificationsController { } 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)); +// handlingGroupAmountSpecificationsDO.setTotalAmount(getSumValue(map.get(key), HandlingGroupAmountSpecificationsRespVO::getAmount, BigDecimal::add)); +// handlingGroupAmountSpecificationsDO.setTotalNum(getSumValue(map.get(key), HandlingGroupAmountSpecificationsRespVO::getTotalCount, Integer::sum)); List items = handlingGroupUserAmountMap.get(handlingGroupAmountSpecificationsDO.getHandlingGroupId()); if (CollUtil.isNotEmpty(items)) { List handlingGroupUserAmountItemVOS = BeanUtils.toBean(items, HandlingGroupUserAmountItemVO.class); @@ -120,6 +120,14 @@ public class HandlingGroupAmountSpecificationsController { return success(result); } + + @GetMapping("/pageV2") + @Operation(summary = "获得搬运组工资规格关联分页") + public CommonResult> getHandlingGroupAmountSpecificationsPageV2(@Valid HandlingGroupAmountSpecificationsPageReqDTO pageReqVO) { + PageResult pageResult = handlingGroupAmountSpecificationsService.getHandlingGroupAmountSpecificationsPageV2(pageReqVO); + return success(pageResult); + } + @GetMapping("/export-excel") @Operation(summary = "导出搬运组工资规格关联 Excel") @OperateLog(type = EXPORT) diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsPageReqDTO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsPageReqDTO.java new file mode 100644 index 00000000..a4bfaa57 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsPageReqDTO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class HandlingGroupAmountSpecificationsPageReqDTO 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 = "搬运工名称", example = "23178") + private String porterName; + + @Schema(description = "搬运规格id", example = "23178") + private Long handlingSpecificationsId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "工厂ids", example = "23178") + private List factoryIds; + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsDetailsRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsDetailsRespVO.java new file mode 100644 index 00000000..fb9eb009 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsDetailsRespVO.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@ExcelIgnoreUnannotated +public class HandlingGroupAmountSpecificationsDetailsRespVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9721") + @ExcelProperty("主键id") + private Long id; + + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + + @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; + + @Schema(description = "搬运规格名称", example = "23178") + @ExcelProperty("搬运规格名称") + private String handlingSpecificationsName; + + @Schema(description = "数量", example = "15611") + @ExcelProperty("数量") + private Integer totalCount; + + @Schema(description = "日期 格式 yyyy-MM-dd") + @ExcelProperty("日期 格式 yyyy-MM-dd") + private String dateStr; + + @Schema(description = "总金额(根据规格和总量计算出 该搬运组获得的总金额)") + @ExcelProperty("总金额(根据规格和总量计算出 该搬运组获得的总金额)") + private BigDecimal amount; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + + @Schema(description = "金额小计") + @ExcelProperty("金额小计") + private BigDecimal totalAmount; + @Schema(description = "数量小计") + @ExcelProperty("数量小计") + private Integer totalNum; + + @Schema(description = "搬运工明细列表") + private List handlingGroupUserAmountItemVOS; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/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 ee0bc898..dd029660 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVO.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; -import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountRespVO; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; @@ -42,26 +41,14 @@ public class HandlingGroupAmountSpecificationsRespVO { @ExcelProperty("叉车司机id") private Long staffId; - @Schema(description = "搬运规格id", example = "23178") - @ExcelProperty("搬运规格id") - private Long handlingSpecificationsId; - @Schema(description = "搬运规格名称", example = "23178") @ExcelProperty("搬运规格名称") - private String handlingSpecificationsName; - - @Schema(description = "数量", example = "15611") - @ExcelProperty("数量") - private Integer totalCount; + private List specificationDetails; @Schema(description = "日期 格式 yyyy-MM-dd") @ExcelProperty("日期 格式 yyyy-MM-dd") private String dateStr; - @Schema(description = "总金额(根据规格和总量计算出 该搬运组获得的总金额)") - @ExcelProperty("总金额(根据规格和总量计算出 该搬运组获得的总金额)") - private BigDecimal amount; - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; @@ -73,6 +60,10 @@ public class HandlingGroupAmountSpecificationsRespVO { @Schema(description = "数量小计") @ExcelProperty("数量小计") private Integer totalNum; + /** + * 搬运规格id 逗号隔开 + */ + private String handlingSpecificationsIds; @Schema(description = "搬运工明细列表") private List handlingGroupUserAmountItemVOS; diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVOV2.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVOV2.java new file mode 100644 index 00000000..2cb90c81 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsRespVOV2.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@ExcelIgnoreUnannotated +public class HandlingGroupAmountSpecificationsRespVOV2 { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9721") + @ExcelProperty("主键id") + private Long id; + + @Schema(description = "工厂id", example = "23178") + private Long factoryId; + + @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 = "日期 格式 yyyy-MM-dd") + @ExcelProperty("日期 格式 yyyy-MM-dd") + private String dateStr; + + + + + + @Schema(description = "搬运规格id", example = "23178") + @ExcelProperty("搬运规格id") + private Long handlingSpecificationsId; + + @Schema(description = "搬运规格名称", example = "23178") + @ExcelProperty("搬运规格名称") + private String handlingSpecificationsName; + + @Schema(description = "数量", example = "15611") + @ExcelProperty("数量") + private Integer totalCount; + + + + + @Schema(description = "总金额(根据规格和总量计算出 该搬运组获得的总金额)") + @ExcelProperty("总金额(根据规格和总量计算出 该搬运组获得的总金额)") + private BigDecimal amount; + + @Schema(description = "金额小计") + @ExcelProperty("金额小计") + private BigDecimal totalAmount; + + @Schema(description = "数量小计") + @ExcelProperty("数量小计") + private Integer totalNum; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "搬运工明细列表") + private List handlingGroupUserAmountItemVOS; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsVO.java new file mode 100644 index 00000000..2c14a532 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsVO.java @@ -0,0 +1,86 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +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.*; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 搬运组工资规格关联 DO + * + * @author 艾楷 + */ +@Data +public class HandlingGroupAmountSpecificationsVO extends BaseDO { + + /** + * 主键id + */ + @TableId + private Long id; + /** + * 工厂id + */ + private Long factoryId; + /** + * 搬运规格id + */ + private Long handlingSpecificationsId; + /** + * 搬运组id + */ + private Long handlingGroupId; + + /** + * 叉车司机id + */ + private Long staffId; + + /** + * 数量 + */ + private Integer totalCount; + /** + * 日期 格式 yyyy-MM-dd + */ + private String dateStr; + /** + * 总金额(根据规格和总量计算出 该搬运组获得的总金额) + */ + private BigDecimal amount; + /** + * 金额合计 + */ + @TableField(exist = false) + private BigDecimal totalAmount; + /** + * 数量合计 + */ + @TableField(exist = false) + private Integer totalNum; + /** + * 工厂名称 + */ + @TableField(exist = false) + private String factoryName; + /** + * 搬运组名称 + */ + @TableField(exist = false) + private String handlingGroupName; + /** + * 叉车司机名称 + */ + @TableField(exist = false) + private String staffName; + /** + * 搬运规格id 逗号隔开 + */ + @TableField(exist = false) + private List specificationDetails; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/SpecificationDetailVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/SpecificationDetailVO.java new file mode 100644 index 00000000..8d35b615 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/SpecificationDetailVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class SpecificationDetailVO { + @Schema(description = "工厂搬运规格id", example = "23178") + private Long handlingSpecificationsId; + + @Schema(description = "规格名称", example = "标准规格") + private String handlingSpecificationsName; + + @Schema(description = "数量", example = "23178") + private Integer totalCount; + + @Schema(description = "金额", example = "23178") + private BigDecimal amount; + + public SpecificationDetailVO() { + } + + public SpecificationDetailVO(Long handlingSpecificationsId, String handlingSpecificationsName, Integer totalCount, BigDecimal amount) { + this.handlingSpecificationsId = handlingSpecificationsId; + this.handlingSpecificationsName = handlingSpecificationsName; + this.totalCount = totalCount; + this.amount = amount; + } +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/dto/StaffWagesPageDTO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/dto/StaffWagesPageDTO.java index 8acf81ec..dc61aa9a 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/dto/StaffWagesPageDTO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/dto/StaffWagesPageDTO.java @@ -18,9 +18,6 @@ public class StaffWagesPageDTO extends PageParam { @Schema(description = "工厂id", example = "12639") private Long factoryId; - @Schema(description = "搬运组工资规格关联id", example = "27617") - private Long handlingGroupAmountSpecificationsId; - @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/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 b131da31..4a3c668d 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 @@ -1,11 +1,13 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import java.math.BigDecimal; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -19,8 +21,8 @@ public class HandlingGroupUserAmountPageReqVO extends PageParam { @Schema(description = "用户id", example = "12639") private Long userId; - @Schema(description = "搬运组工资规格关联id", example = "27617") - private Long handlingGroupAmountSpecificationsId; + @Schema(description = "工厂id", example = "27617") + private Long factoryId; @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/handlinggroupuseramount/vo/HandlingGroupUserAmountRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountRespVO.java index c4dc4301..129a2ae2 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountRespVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupuseramount/vo/HandlingGroupUserAmountRespVO.java @@ -25,10 +25,6 @@ public class HandlingGroupUserAmountRespVO { @ExcelProperty("用户名称") private String userName; - @Schema(description = "搬运组工资规格关联id", example = "27617") - @ExcelProperty("搬运组工资规格关联id") - private Long handlingGroupAmountSpecificationsId; - @Schema(description = "日期 格式 yyyy-MM-dd") @ExcelProperty("日期 格式 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/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 be58f666..dec9095d 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 @@ -1,10 +1,8 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; -import java.util.*; +import lombok.Data; + import java.math.BigDecimal; @Schema(description = "管理后台 - 搬运组每日个人工资记录新增/修改 Request VO") @@ -20,8 +18,8 @@ public class HandlingGroupUserAmountSaveReqVO { @Schema(description = "工厂id", example = "12639") private Long factoryId; - @Schema(description = "搬运组工资规格关联id", example = "27617") - private Long handlingGroupAmountSpecificationsId; + @Schema(description = "搬运组id", example = "12639") + 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/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 index caaf3bb6..f8b4e9cf 100644 --- 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 @@ -39,4 +39,9 @@ public class HandlingGroupDO extends BaseDO { @TableField(exist = false) private String factoryName; + /** + * 搬运日期 + */ + @TableField(exist = false) + private String dateStr; } 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 28f725fb..3ed5f5f1 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 @@ -1,15 +1,16 @@ package cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import com.alibaba.excel.annotation.ExcelProperty; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.SpecificationDetailVO; 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 com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.*; import java.math.BigDecimal; +import java.util.List; /** * 搬运组工资规格关联 DO @@ -61,8 +62,16 @@ public class HandlingGroupAmountSpecificationsDO extends BaseDO { * 总金额(根据规格和总量计算出 该搬运组获得的总金额) */ private BigDecimal amount; - - + /** + * 金额合计 + */ + @TableField(exist = false) + private BigDecimal totalAmount; + /** + * 数量合计 + */ + @TableField(exist = false) + private Integer totalNum; /** * 工厂名称 */ @@ -79,8 +88,8 @@ public class HandlingGroupAmountSpecificationsDO extends BaseDO { @TableField(exist = false) private String staffName; /** - * 搬运规格名称 + * 搬运规格id 逗号隔开 */ @TableField(exist = false) - private String handlingSpecificationsName; + private List specificationDetails; } 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 b40f7de6..6a4a0b60 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 @@ -40,11 +40,6 @@ public class HandlingGroupUserAmountDO extends BaseDO { @TableField(exist = false) private String userName; - /** - * 搬运组工资规格关联id - */ - private Long handlingGroupAmountSpecificationsId; - /** * 搬运组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 index 68e1f959..aec9c4df 100644 --- 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 @@ -1,16 +1,22 @@ 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.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupPageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsPageReqDTO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.HandlingGroupAmountSpecificationsVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup.HandlingGroupDO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; 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; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.Results; + +import java.util.List; /** * 搬运组 Mapper @@ -30,10 +36,18 @@ public interface HandlingGroupMapper extends BaseMapperX { } /** - * * @param page * @param vo * @return */ IPage selectPageList(@Param("page") Page page, @Param("vo") HandlingGroupPageReqVO vo); + + /** + * 根据时间分组查询分页 + * + * @param page + * @param vo + * @return + */ + IPage selectPageListByDateStr(@Param("page") Page page, @Param("vo") HandlingGroupAmountSpecificationsPageReqDTO vo); } 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 0b822e02..28237791 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 @@ -26,7 +26,6 @@ public interface HandlingGroupUserAmountMapper extends BaseMapperX selectPage(HandlingGroupUserAmountPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(HandlingGroupUserAmountDO::getUserId, reqVO.getUserId()) - .eqIfPresent(HandlingGroupUserAmountDO::getHandlingGroupAmountSpecificationsId, reqVO.getHandlingGroupAmountSpecificationsId()) .eqIfPresent(HandlingGroupUserAmountDO::getDateStr, reqVO.getDateStr()) .eqIfPresent(HandlingGroupUserAmountDO::getAmount, reqVO.getAmount()) .betweenIfPresent(HandlingGroupUserAmountDO::getCreateTime, reqVO.getCreateTime()) @@ -51,6 +50,7 @@ public interface HandlingGroupUserAmountMapper extends BaseMapperX getHandlingGroupUserAmountList(@Param("vo") HandlingGroupUserAmountPageReqVO vo); - /** - * - * @param handlingGroupAmountSpecificationsIds - * @return - */ - List getByHandlingGroupAmountSpecificationsId(@Param("handlingGroupAmountSpecificationsIds") List handlingGroupAmountSpecificationsIds); - List getByHandlingGroupIds(@Param("handlingGroupIds") List handlingGroupIds); List selectAmountSum(@Param("factoryId") Long factoryId, @Param("month") String month); Long selectIsExists(@Param("factoryId") Long factoryId, @Param("month") String month); + + /** + * 通过工厂列表ids 和日期列表 和 搬运组ids 获取 + * + * @param factoryIds + * @param dateStrList + * @param handlingGroupIds + * @return + */ + List getByFactorIdAndDateStrAndHandlingGroupId(@Param("factoryIds") List factoryIds, @Param("dateStrList") List dateStrList, @Param("handlingGroupIds") List handlingGroupIds); } 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 6258d261..71b6e09d 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,9 +1,12 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecifications; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsPageReqDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroup.HandlingGroupDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; +import com.baomidou.mybatisplus.extension.service.IService; import javax.validation.Valid; import java.math.BigDecimal; @@ -14,7 +17,7 @@ import java.util.List; * * @author 艾楷 */ -public interface HandlingGroupAmountSpecificationsService { +public interface HandlingGroupAmountSpecificationsService extends IService { /** * 获得搬运组工资规格关联 @@ -66,16 +69,22 @@ public interface HandlingGroupAmountSpecificationsService { /** * 获取合计 * - * @param factoryId * @return */ HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(HandlingGroupAmountSpecificationsTotalNumDTO dto); /** * 获取金额小计 + * * @param totalCount * @param handlingSpecificationsId * @return */ BigDecimal getAmountSubtotal(Integer totalCount, Long handlingSpecificationsId); + + /** + * @param pageReqVO + * @return + */ + PageResult getHandlingGroupAmountSpecificationsPageV2(@Valid HandlingGroupAmountSpecificationsPageReqDTO pageReqVO); } 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 972881f8..1bb0e3ad 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 @@ -2,32 +2,42 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecific import cn.hutool.core.collection.CollUtil; 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.HandlingGroupListVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsPageReqDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; +import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.HandlingGroupUserAmountItemVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupuseramount.HandlingGroupUserAmountDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlingspecifications.HandlingSpecificationsDO; +import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroup.HandlingGroupMapper; import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsMapper; import cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount.HandlingGroupUserAmountService; import cn.iocoder.yudao.module.smartfactory.service.handlingspecifications.HandlingSpecificationsService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import com.alibaba.druid.sql.visitor.functions.Lpad; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashMap; 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.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.ADDED_A_HANDLING_GROUP_WITH_DUPLICATE_DATA; +import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.NEW_DATA_AND_OLD_DATA_HAVE_DUPLICATE_HANDLING_GROUP; /** * 搬运组工资规格关联 Service 实现类 @@ -36,11 +46,13 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti */ @Service @Validated -public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGroupAmountSpecificationsService { +public class HandlingGroupAmountSpecificationsServiceImpl extends ServiceImpl implements HandlingGroupAmountSpecificationsService { @Resource private HandlingGroupAmountSpecificationsMapper handlingGroupAmountSpecificationsMapper; @Resource + private HandlingGroupMapper handlingGroupMapper; + @Resource private HandlingSpecificationsService handlingSpecificationsService; @Resource private HandlingGroupUserAmountService handlingGroupUserAmountService; @@ -79,6 +91,26 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro @Override public void batchCreate(HandlingGroupAmountSpecificationsBatchCreateVO vo) { + List newHandlingGroupIds = vo.getHandlingGroupList().stream().map(HandlingGroupListVO::getHandlingGroupId).collect(Collectors.toList()); + // -- 先判断 新增之中有没有冲突的搬运组 + int num = newHandlingGroupIds.size(); + List distinctList = newHandlingGroupIds.stream().distinct().collect(Collectors.toList()); + if (num > distinctList.size()) { + throw exception(ADDED_A_HANDLING_GROUP_WITH_DUPLICATE_DATA); + } + // -- 再判断是否有重复的数据 - 同一天 同一个工厂 不可以出现两个相同的搬运组 + List oldList = this.list(new LambdaQueryWrapper() + .eq(HandlingGroupAmountSpecificationsDO::getFactoryId, vo.getFactoryId()) + .eq(HandlingGroupAmountSpecificationsDO::getDateStr, vo.getDateStr())); + List oldHandlingGroupIds = new ArrayList<>(); + if (CollUtil.isNotEmpty(oldList)) { + oldHandlingGroupIds = oldList.stream().map(HandlingGroupAmountSpecificationsDO::getHandlingGroupId).collect(Collectors.toList()); + } + if (CollUtil.isNotEmpty(CollUtil.intersection(distinctList, oldHandlingGroupIds))) { + throw exception(NEW_DATA_AND_OLD_DATA_HAVE_DUPLICATE_HANDLING_GROUP); + } + + List list = new ArrayList<>(); // -- 获取到所有的规格列表 List handlingSpecificationsIds = vo.getHandlingGroupList().stream() @@ -163,9 +195,11 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro handlingGroupAmountSpecificationsMapper.deleteBatchIds(ids); handlingGroupUserAmountService.remove(new LambdaQueryWrapper() - .in(HandlingGroupUserAmountDO::getHandlingGroupAmountSpecificationsId, ids) - ); + .eq(HandlingGroupUserAmountDO::getFactoryId, vo.getFactoryId()) + .eq(HandlingGroupUserAmountDO::getHandlingGroupId, vo.getHandlingGroupId()) + .eq(HandlingGroupUserAmountDO::getDateStr, vo.getDateStr())); } + @Override public HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(HandlingGroupAmountSpecificationsTotalNumDTO dto) { // 判断当前登录人是否属于工厂主管 @@ -189,4 +223,27 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro } return totalAmount; } + + @Override + public PageResult getHandlingGroupAmountSpecificationsPageV2(HandlingGroupAmountSpecificationsPageReqDTO pageReqVO) { + IPage handlingGroupPage = handlingGroupMapper.selectPageListByDateStr(MyBatisUtils.buildPage(pageReqVO), pageReqVO); + // 搬运规格ids - 拼接 一起查询 + PageResult resultPage = new PageResult<>(handlingGroupPage.getRecords(), handlingGroupPage.getTotal()); + PageResult result = BeanUtils.toBean(resultPage, HandlingGroupAmountSpecificationsRespVO.class); + List factoryIds = result.getList().stream().map(HandlingGroupAmountSpecificationsRespVO::getFactoryId).distinct().collect(Collectors.toList()); + List dateStrList = result.getList().stream().map(HandlingGroupAmountSpecificationsRespVO::getDateStr).distinct().collect(Collectors.toList()); + List handlingGroupIds = result.getList().stream().map(HandlingGroupAmountSpecificationsRespVO::getHandlingGroupId).distinct().collect(Collectors.toList()); + if (CollUtil.isNotEmpty(factoryIds) && CollUtil.isNotEmpty(dateStrList) && CollUtil.isNotEmpty(handlingGroupIds)) { + // -- 工厂 - 时间 - 组 + List handlingGroupUserAmountDOS = handlingGroupUserAmountService.getByFactorIdAndDateStrAndHandlingGroupId(factoryIds, dateStrList, handlingGroupIds); + Map> map = handlingGroupUserAmountDOS.stream().collect(Collectors.groupingBy( + a -> a.getFactoryId() + "-" + a.getDateStr() + "-" + a.getHandlingGroupId() + )); + for (HandlingGroupAmountSpecificationsRespVO handlingGroupAmountSpecificationsRespVO : result.getList()) { + String key = handlingGroupAmountSpecificationsRespVO.getFactoryId() + "-" + handlingGroupAmountSpecificationsRespVO.getDateStr() + "-" + handlingGroupAmountSpecificationsRespVO.getHandlingGroupId(); + handlingGroupAmountSpecificationsRespVO.setHandlingGroupUserAmountItemVOS(BeanUtils.toBean(map.get(key), HandlingGroupUserAmountItemVO.class)); + } + } + return result; + } } 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 b2761798..41d328a4 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 @@ -84,24 +84,29 @@ public interface HandlingGroupUserAmountService extends IService getHandlingGroupUserAmountList(HandlingGroupUserAmountPageReqVO pageReqVO); - /** - * - * @param handlingGroupAmountSpecificationsIds - * @return - */ - List getByHandlingGroupAmountSpecificationsId(List handlingGroupAmountSpecificationsIds); - /** * 确认搬运工组薪资,确认后添加至员工薪资表 + * * @param factoryId * @param month */ void confirmHandlingGroupUserAmount(Long factoryId, String month); List getByHandlingGroupIds(List handlingGroupIds); + + /** + * 通过工厂列表ids 和日期列表 和 搬运组ids 获取 + * + * @param factoryIds + * @param dateStrList + * @param handlingGroupIds + * @return + */ + List getByFactorIdAndDateStrAndHandlingGroupId(List factoryIds, List dateStrList, List handlingGroupIds); } 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 ecdd6a8f..d4e3612e 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 @@ -108,9 +108,7 @@ public class HandlingGroupUserAmountServiceImpl extends ServiceImpl getByHandlingGroupAmountSpecificationsId(List handlingGroupAmountSpecificationsIds) { - return handlingGroupUserAmountMapper.getByHandlingGroupAmountSpecificationsId(handlingGroupAmountSpecificationsIds); - } - @Override public void confirmHandlingGroupUserAmount(Long factoryId, String month) { @@ -254,4 +247,9 @@ public class HandlingGroupUserAmountServiceImpl extends ServiceImpl getByFactorIdAndDateStrAndHandlingGroupId(List factoryIds, List dateStrList, List handlingGroupIds) { + return handlingGroupUserAmountMapper.getByFactorIdAndDateStrAndHandlingGroupId(factoryIds, dateStrList, handlingGroupIds); + } + } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/hik/HikServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/hik/HikServiceImpl.java index f19ddc2d..e512b7a4 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/hik/HikServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/hik/HikServiceImpl.java @@ -50,6 +50,7 @@ public class HikServiceImpl implements HikService { String result = ArtemisHttpUtil .doPostStringArtemis(path, JSONUtil.toJsonStr(body), null, null, "application/json"); log.info("{}监控查看预览地址返回:{}", JSONUtil.toJsonStr(body), result); + //监控查看预览地址返回:{"code":"0","msg":"success","data":{"url":"ws://172.16.52.253:559/openUrl/ZZYpOFO"}} if (StringUtils.isEmpty(result)) { // throw new ServiceException("监控查看预览地址返回为空"); System.out.println("监控查看预览地址返回为空"); @@ -126,7 +127,7 @@ public class HikServiceImpl implements HikService { @Override public String operateCamera(CameraOperateDTO dto) { - final String operateUrlApi = ArtemisApiConstant.operateUrlApi; + final String operateUrlApi = ArtemisApiConstant.operateUrlApi;//artemis/api/video/v1/ptzs/controlling Map path = new HashMap(1) { { put("https://", operateUrlApi); 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 index 66db8c87..cbfb387e 100644 --- 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 @@ -25,4 +25,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 2a3a3b55..81f3f023 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 @@ -24,6 +24,7 @@ a.deleted = 0 and b.deleted = 0 + and d.deleted = 0 AND a.handling_specifications_id = #{vo.handlingSpecificationsId} @@ -44,11 +45,13 @@ AND EXISTS ( - select e.id from sf_handling_group_user_amount as e - left join sf_staff as g on g.id = e.user_id - where a.id = e.handling_group_amount_specifications_id - and g.nick_name like concat('%', #{vo.porterName}, '%') - and e.deleted = 0 + select e.id from sf_handling_group_user_amount as e + left join sf_staff as g on g.id = e.user_id + where a.factory_id = e.factory_id + and a.date_str = e.date_str + and a.handling_group_id = e.handling_group_id + and g.nick_name like concat('%', #{vo.porterName}, '%') + and e.deleted = 0 ) @@ -132,7 +135,9 @@ LEFT JOIN sf_staff AS d ON d.id = c.user_id WHERE c.deleted = 0 - and a.id = c.handling_group_amount_specifications_id + and a.factory_id = c.factory_id + and a.date_str = c.date_str + and a.handling_group_id = c.handling_group_id and d.nick_name like concat('%', #{dto.porterName}, '%') ) 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 9bbd33ab..4f940947 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 @@ -24,9 +24,6 @@ AND a.handling_group_id = #{vo.handlingGroupId} - - AND a.handling_group_amount_specifications_id= #{vo.handlingGroupAmountSpecificationsId} - and a.dateStr like concat('%', #{vo.dateStr}, '%') @@ -57,9 +54,6 @@ AND a.factory_id = #{dto.factoryId} - - AND b.handling_group_amount_specifications_id = #{dto.handlingGroupAmountSpecificationsId} - and b.date_str like concat('%', #{dto.dateStr}, '%') @@ -113,14 +107,14 @@ AND a.user_id = #{vo.userId} + + and a.factory_id = #{vo.factoryId} + AND a.handling_group_id = #{vo.handlingGroupId} - - AND a.handling_group_amount_specifications_id= #{vo.handlingGroupAmountSpecificationsId} - - and a.dateStr like concat('%', #{vo.dateStr}, '%') + and a.date_str like concat('%', #{vo.dateStr}, '%') @@ -132,23 +126,6 @@ - +