Procházet zdrojové kódy

save 生产明细补充

wks před 4 měsíci
rodič
revize
cc7293dd85
19 změnil soubory, kde provedl 231 přidání a 28 odebrání
  1. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/BomController.java
  2. 14 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/TaskController.java
  3. 4 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemSkuBo.java
  4. 4 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitAuxiliaryBo.java
  5. 4 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitConfigBo.java
  6. 44 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/TaskDetailsDto.java
  7. 2 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsBomVersion.java
  8. 8 26
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsTask.java
  9. 4 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitAuxiliary.java
  10. 3 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitConfig.java
  11. 7 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemVo.java
  12. 5 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MovementOrderVo.java
  13. 45 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/TaskDetailsVo.java
  14. 13 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsTaskDetailsMapper.java
  15. 13 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/WmsTaskDetailsService.java
  16. 11 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/impl/WmsTaskDetailsServiceImpl.java
  17. 2 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/impl/WmsTaskServiceImpl.java
  18. 1 0
      ruoyi-admin-wms/src/main/resources/mapper/wms/ItemSkuMapper.xml
  19. 46 0
      ruoyi-admin-wms/src/main/resources/mapper/wms/WmsTaskDetailsMapper.xml

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/BomController.java

@@ -27,7 +27,7 @@ public class BomController {
 
     @Operation(summary = "获取版本列表")
     @GetMapping("/version")
-    public R<List<WmsBomVersion>> version(@RequestParam String skuId) {
+    public R<List<WmsBomVersion>> version(@RequestParam(required = false) String skuId) {
         List<WmsBomVersion> list = wmsBomVersionService.getVersion(skuId);
         return R.ok(list);
     }

+ 14 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/TaskController.java

@@ -2,9 +2,14 @@ package com.ruoyi.wms.controller;
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.wms.domain.dto.TaskAddDto;
+import com.ruoyi.wms.domain.dto.TaskDetailsDto;
 import com.ruoyi.wms.domain.dto.WmsTaskQueryDto;
 import com.ruoyi.wms.domain.entity.WmsTask;
+import com.ruoyi.wms.domain.vo.TaskDetailsVo;
+import com.ruoyi.wms.service.WmsTaskDetailsService;
 import com.ruoyi.wms.service.WmsTaskService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -25,6 +30,8 @@ public class TaskController {
 
     private final WmsTaskService wmsTaskService;
 
+    private final WmsTaskDetailsService wmsTaskDetailsService;
+
     @Operation(summary = "任务单列表")
     @GetMapping("/list")
     public R<List<WmsTask>> get(WmsTaskQueryDto wmsTaskQueryDto) {
@@ -68,5 +75,12 @@ public class TaskController {
         return R.ok("作废成功");
     }
 
+    @Operation(summary = "生产明细")
+    @GetMapping("/details")
+    public R<TableDataInfo<TaskDetailsVo>> details(TaskDetailsDto taskDetailsDto, PageQuery pageQuery) {
+        TableDataInfo<TaskDetailsVo> taskDetails = wmsTaskDetailsService.details(taskDetailsDto, pageQuery);
+        return R.ok(taskDetails);
+    }
+
 }
 

+ 4 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemSkuBo.java

@@ -10,6 +10,7 @@ import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serial;
 import java.math.BigDecimal;
 
 @Data
@@ -17,6 +18,9 @@ import java.math.BigDecimal;
 @AutoMapper(target = ItemSku.class, reverseConvertGenerate = false)
 public class ItemSkuBo extends BaseEntity {
 
+    @Serial
+    private static final long serialVersionUID = -3903394296110398603L;
+
     /**
      *
      */

+ 4 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitAuxiliaryBo.java

@@ -1,11 +1,15 @@
 package com.ruoyi.wms.domain.bo;
 
+import com.ruoyi.wms.domain.entity.WmsUnitAuxiliary;
+import com.ruoyi.wms.domain.entity.WmsUnitConfig;
+import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
 
 @Data
+@AutoMapper(target = WmsUnitAuxiliary.class, reverseConvertGenerate = false)
 public class UnitAuxiliaryBo implements Serializable {
 
     @Serial

+ 4 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitConfigBo.java

@@ -1,5 +1,8 @@
 package com.ruoyi.wms.domain.bo;
 
+import com.ruoyi.wms.domain.entity.Warehouse;
+import com.ruoyi.wms.domain.entity.WmsUnitConfig;
+import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
@@ -7,6 +10,7 @@ import java.io.Serializable;
 import java.util.List;
 
 @Data
+@AutoMapper(target = WmsUnitConfig.class, reverseConvertGenerate = false)
 public class UnitConfigBo implements Serializable {
 
     @Serial

+ 44 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/TaskDetailsDto.java

@@ -0,0 +1,44 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+public class TaskDetailsDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2637595968507738478L;
+
+    @Schema(description = "任务编号")
+    private String taskCode;
+
+    @Schema(description = "商品名称")
+    private String itemName;
+
+    @Schema(description = "商品编号")
+    private String itemCode;
+
+    @Schema(description = "规格名称")
+    private String skuName;
+
+    @Schema(description = "BOM版本")
+    private Long versionId;
+
+    @Schema(description = "创建时间-开始")
+    private Date startCreateTime;
+
+    @Schema(description = "创建时间-结束")
+    private Date endCreateTime;
+
+    @Schema(description = "完成时间-开始")
+    private Date startCompletionTime;
+
+    @Schema(description = "完成时间-结束")
+    private Date endCompletionTime;
+
+}

+ 2 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsBomVersion.java

@@ -9,6 +9,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.io.Serializable;
 
 /**
@@ -22,6 +23,7 @@ import java.io.Serializable;
 @NoArgsConstructor
 @Data
 public class WmsBomVersion implements Serializable {
+    @Serial
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 

+ 8 - 26
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsTask.java

@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
+import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import lombok.*;
 
 import java.io.Serial;
-import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.Date;
 
 /**
@@ -18,12 +16,13 @@ import java.util.Date;
  *
  * @TableName wms_task
  */
+@EqualsAndHashCode(callSuper = true)
 @TableName(value = "wms_task")
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
 @Data
-public class WmsTask implements Serializable {
+public class WmsTask extends BaseEntity {
     @Serial
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
@@ -72,26 +71,9 @@ public class WmsTask implements Serializable {
     private String remark;
 
     /**
-     * 创建人
+     * 完成时间
      */
-    @TableField(value = "create_by")
-    private String createBy;
+    @TableField(value = "completion_time")
+    private LocalDateTime completionTime;
 
-    /**
-     * 创建时间
-     */
-    @TableField(value = "create_time")
-    private Date createTime;
-
-    /**
-     * 修改人
-     */
-    @TableField(value = "update_by")
-    private String updateBy;
-
-    /**
-     * 修改时间
-     */
-    @TableField(value = "update_time")
-    private Date updateTime;
 }

+ 4 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitAuxiliary.java

@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
 
 import java.io.Serial;
 import java.io.Serializable;
+
+import com.ruoyi.wms.domain.bo.UnitAuxiliaryBo;
+import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 /**
@@ -15,6 +18,7 @@ import lombok.Data;
  */
 @TableName(value ="wms_unit_auxiliary")
 @Data
+@AutoMapper(target = UnitAuxiliaryBo.class, reverseConvertGenerate = false)
 public class WmsUnitAuxiliary implements Serializable {
     /**
      *

+ 3 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitConfig.java

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serial;
 import java.io.Serializable;
 
+import com.ruoyi.wms.domain.bo.UnitConfigBo;
+import io.github.linpeilie.annotations.AutoMapper;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -18,6 +20,7 @@ import lombok.NoArgsConstructor;
  */
 @TableName(value ="wms_unit_config")
 @Data
+@AutoMapper(target = UnitConfigBo.class, reverseConvertGenerate = false)
 public class WmsUnitConfig implements Serializable {
     /**
      *

+ 7 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemVo.java

@@ -36,6 +36,12 @@ public class ItemVo implements Serializable {
     @ExcelProperty(value = "名称")
     private String itemName;
 
+    /**
+     * 类型
+     */
+    @ExcelProperty(value = "物料类型")
+    private String itemType;
+
     /**
      * 分类
      */
@@ -46,7 +52,7 @@ public class ItemVo implements Serializable {
      * 单位类别
      */
     @ExcelProperty(value = "单位类别")
-    private String unit;
+    private String itemUnit;
 
     /**
      * 品牌

+ 5 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MovementOrderVo.java

@@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serial;
+
 /**
  * 移库单视图对象 wms_movement_order
  *
@@ -19,6 +21,9 @@ import lombok.EqualsAndHashCode;
 @AutoMapper(target = MovementOrder.class)
 public class MovementOrderVo extends BaseOrderVo<MovementOrderDetailVo> {
 
+    @Serial
+    private static final long serialVersionUID = 8428806540209397359L;
+
     /**
      * 源仓库
      */

+ 45 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/TaskDetailsVo.java

@@ -0,0 +1,45 @@
+package com.ruoyi.wms.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+public class TaskDetailsVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5214668847814189336L;
+
+    @Schema(description = "任务编号")
+    private String taskCode;
+
+    @Schema(description = "商品编号")
+    private String itemCode;
+
+    @Schema(description = "商品名称")
+    private String itemName;
+
+    @Schema(description = "商品品牌")
+    private String itemBrand;
+
+    @Schema(description = "规格编码")
+    private String skuCode;
+
+    @Schema(description = "规格名称")
+    private String skuName;
+
+    @Schema(description = "BOM版本")
+    private String version;
+
+    @Schema(description = "生产数量")
+    private String quantity;
+
+    @Schema(description = "完成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime completionTime;
+
+}

+ 13 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsTaskDetailsMapper.java

@@ -1,7 +1,11 @@
 package com.ruoyi.wms.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.wms.domain.dto.TaskDetailsDto;
 import com.ruoyi.wms.domain.entity.WmsTaskDetails;
+import com.ruoyi.wms.domain.vo.TaskDetailsVo;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author Administrator
@@ -11,6 +15,15 @@ import com.ruoyi.wms.domain.entity.WmsTaskDetails;
  */
 public interface WmsTaskDetailsMapper extends BaseMapper<WmsTaskDetails> {
 
+    /**
+     * 查询明细信息
+     *
+     * @param page 分页
+     * @param bo   查询实体
+     * @return 明细列表
+     */
+    Page<TaskDetailsVo> details(Page<TaskDetailsVo> page, @Param("bo") TaskDetailsDto bo);
+
 }
 
 

+ 13 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/WmsTaskDetailsService.java

@@ -1,7 +1,11 @@
 package com.ruoyi.wms.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.wms.domain.dto.TaskDetailsDto;
 import com.ruoyi.wms.domain.entity.WmsTaskDetails;
+import com.ruoyi.wms.domain.vo.TaskDetailsVo;
 
 /**
  * @author Administrator
@@ -10,4 +14,13 @@ import com.ruoyi.wms.domain.entity.WmsTaskDetails;
  */
 public interface WmsTaskDetailsService extends IService<WmsTaskDetails> {
 
+    /**
+     * 查询生产明细
+     *
+     * @param taskDetailsDto 生产明细查询实体
+     * @param pageQuery 分页参数
+     * @return 生产明细列表
+     */
+    TableDataInfo<TaskDetailsVo> details(TaskDetailsDto taskDetailsDto, PageQuery pageQuery);
+
 }

+ 11 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/impl/WmsTaskDetailsServiceImpl.java

@@ -1,7 +1,12 @@
 package com.ruoyi.wms.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.wms.domain.dto.TaskDetailsDto;
 import com.ruoyi.wms.domain.entity.WmsTaskDetails;
+import com.ruoyi.wms.domain.vo.TaskDetailsVo;
 import com.ruoyi.wms.mapper.WmsTaskDetailsMapper;
 import com.ruoyi.wms.service.WmsTaskDetailsService;
 import org.springframework.stereotype.Service;
@@ -15,6 +20,12 @@ import org.springframework.stereotype.Service;
 public class WmsTaskDetailsServiceImpl extends ServiceImpl<WmsTaskDetailsMapper, WmsTaskDetails>
     implements WmsTaskDetailsService {
 
+    @Override
+    public TableDataInfo<TaskDetailsVo> details(TaskDetailsDto taskDetailsDto, PageQuery pageQuery) {
+        Page<TaskDetailsVo> details = this.baseMapper.details(pageQuery.build(), taskDetailsDto);
+        return TableDataInfo.build(details);
+    }
+
 }
 
 

+ 2 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/impl/WmsTaskServiceImpl.java

@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -147,6 +148,7 @@ public class WmsTaskServiceImpl extends ServiceImpl<WmsTaskMapper, WmsTask>
         shipmentOrderDetailService.saveBatch(shipmentOrderDetailMap.values());
 
         wmsTask.setStatus(TaskStatus.TASK_STATUS_2.getCode());
+        wmsTask.setCompletionTime(LocalDateTime.now());
         this.updateById(wmsTask);
     }
 

+ 1 - 0
ruoyi-admin-wms/src/main/resources/mapper/wms/ItemSkuMapper.xml

@@ -43,6 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             sku.id as sku_id,
             sku.*,
             item.id as item_id,
+            item.unit as item_unit,
             item.*
         from wms_item_sku sku
         inner join wms_item item on sku.item_id=item.id

+ 46 - 0
ruoyi-admin-wms/src/main/resources/mapper/wms/WmsTaskDetailsMapper.xml

@@ -15,4 +15,50 @@
     <sql id="Base_Column_List">
         id,task_id,item_id,version_id,quantity
     </sql>
+
+    <select id="details" resultType="com.ruoyi.wms.domain.vo.TaskDetailsVo">
+        select wt.task_code,
+        wi.item_code,
+        wi.item_name,
+        wi.item_brand,
+        wis.sku_code,
+        wis.sku_name,
+        wbv.version,
+        wtd.quantity,
+        wt.completion_time
+        from wms_task_details wtd
+        left join wms_task wt on wt.id = wtd.task_id
+        left join wms_bom_version wbv on wbv.id = wtd.version_id
+        left join wms_item_sku wis on wis.id = wtd.item_sku_id
+        left join wms_item wi on wi.id = wis.item_id
+        <where>
+            <if test='bo.taskCode != null and bo.taskCode !=""'>
+                and wt.task_code = CONCAT('%', #{bo.taskCode}, '%')
+            </if>
+            <if test='bo.itemCode != null and bo.itemCode !=""'>
+                and wi.item_code = CONCAT('%', #{bo.itemCode}, '%')
+            </if>
+            <if test='bo.itemName != null and bo.itemName !=""'>
+                and wi.item_name = CONCAT('%', #{itemName}, '%')
+            </if>
+            <if test='bo.skuName != null and bo.skuName !=""'>
+                and wis.sku_name = CONCAT('%', #{bo.skuName}, '%')
+            </if>
+            <if test='bo.versionId != null'>
+                and wtd.version_id = #{bo.versionId}
+            </if>
+            <if test='bo.startCreateTime != null and bo.endCreateTime !=null'>
+                and wt.create_time > CONCAT(#{bo.startCreateTime}, " 00:00:00")
+                and wt.create_time &lt;= CONCAT(#{bo.endCreateTime}, " 23:59:59")
+            </if>
+            <if test='bo.startCompletionTime != null and bo.endCompletionTime !=""'>
+                and wt.completion_time > CONCAT(#{bo.startCompletionTime}, " 00:00:00")
+                and wt.completion_time &lt;= CONCAT(#{bo.endCompletionTime}, " 23:59:59")
+            </if>
+
+        </where>
+
+
+    </select>
+
 </mapper>