Ver código fonte

Merge remote-tracking branch 'remotes/origin/master_liaozeyong' into master_huangjunjie

huang 1 mês atrás
pai
commit
6dad5ac5c8

+ 43 - 2
src/main/java/com/jsh/erp/controller/stocktaking/StocktakingController.java

@@ -1,12 +1,16 @@
 package com.jsh.erp.controller.stocktaking;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.jsh.erp.base.AjaxResult;
 import com.jsh.erp.base.BaseController;
 import com.jsh.erp.base.TableDataInfo;
 import com.jsh.erp.datasource.dto.TaskStocktakingDTO;
+import com.jsh.erp.datasource.dto.TaskStocktakingItemDTO;
 import com.jsh.erp.datasource.entities.TaskStocktaking;
-import com.jsh.erp.datasource.entities.User;
+import com.jsh.erp.datasource.entities.TaskStocktakingItem;
 import com.jsh.erp.datasource.vo.SpinnerVO;
+import com.jsh.erp.query.LambdaQueryWrapperX;
+import com.jsh.erp.service.TaskStocktakingItemService;
 import com.jsh.erp.service.TaskStocktakingService;
 import com.jsh.erp.service.UserService;
 import io.swagger.annotations.Api;
@@ -27,11 +31,15 @@ public class StocktakingController extends BaseController {
     @Resource
     private UserService userService;
 
+    @Resource
+    private TaskStocktakingItemService taskStocktakingItemService;
+
     @ApiOperation("盘点任务列表")
     @PostMapping("/list")
     public TableDataInfo list(){
         startPage();
-        return getDataTable(taskStocktakingService.list());
+        List<TaskStocktaking> list = taskStocktakingService.list();
+        return getDataTable(list);
     }
 
     @ApiOperation("新增盘点任务")
@@ -48,6 +56,39 @@ public class StocktakingController extends BaseController {
         return AjaxResult.success(spinnerVOList);
     }
 
+    /**
+     * 查询任务详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail/{id}")
+    public AjaxResult detail(@PathVariable("id") Long id) throws Exception{
+        return AjaxResult.success(taskStocktakingService.detail(id));
+    }
 
+    /**
+     * 任务详情-商品列表
+     * @param taskStocktakingId 任务ID
+     * @return
+     */
+    @GetMapping("/detailByItemList/{taskStocktakingId}")
+    public AjaxResult detailByItemList(@PathVariable("taskStocktakingId") Long taskStocktakingId) {
+        return AjaxResult.success(taskStocktakingService.listByTaskStocktakingId(taskStocktakingId));
+    }
+
+    /**
+     * 任务详情-商品列表-编辑
+     * @return
+     */
+    @PostMapping("/itemUpdate")
+    public AjaxResult itemUpdate(@RequestBody TaskStocktakingItemDTO taskStocktakingItemDTO) {
+        taskStocktakingItemService.update(new UpdateWrapper<TaskStocktakingItem>()
+                .set("new_inventory", taskStocktakingItemDTO.getNewInventory())
+                .set("new_position", taskStocktakingItemDTO.getNewPosition())
+                .set("difference_count", taskStocktakingItemDTO.getDifferenceCount())
+                .set("difference_reason", taskStocktakingItemDTO.getDifferenceReason())
+                .eq("id", taskStocktakingItemDTO.getId()));
+        return AjaxResult.success();
+    }
 
 }

+ 32 - 0
src/main/java/com/jsh/erp/datasource/dto/TaskStocktakingItemDTO.java

@@ -0,0 +1,32 @@
+package com.jsh.erp.datasource.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 盘点任务明细
+ */
+@Data
+@Accessors(chain = true)
+public class TaskStocktakingItemDTO {
+
+    @ApiModelProperty("主键ID")
+    private Long id;
+
+    @ApiModelProperty("新仓位货架")
+    private String newPosition;
+
+    @ApiModelProperty("新库存数")
+    private BigDecimal newInventory;
+
+    @ApiModelProperty("差异数量")
+    private Integer differenceCount;
+
+    @ApiModelProperty("差异原因")
+    private String differenceReason;
+
+}

+ 2 - 0
src/main/java/com/jsh/erp/datasource/entities/MaterialExtend.java

@@ -1,5 +1,6 @@
 package com.jsh.erp.datasource.entities;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -10,6 +11,7 @@ import java.util.Date;
  * 产品价格扩展表实体类
  */
 @Data
+@TableName("jsh_material_extend")
 public class MaterialExtend {
 
     @ApiModelProperty("主键id")

+ 7 - 0
src/main/java/com/jsh/erp/datasource/mappers/TaskStocktakingItemMapper.java

@@ -1,6 +1,13 @@
 package com.jsh.erp.datasource.mappers;
 
 import com.jsh.erp.datasource.entities.TaskStocktakingItem;
+import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface TaskStocktakingItemMapper extends BaseMapperX<TaskStocktakingItem> {
+
+    List<TaskStocktakingItemVO> listByTaskStocktakingId(@Param("taskStocktakingId") Long taskStocktakingId);
+
 }

+ 47 - 0
src/main/java/com/jsh/erp/datasource/vo/TaskStocktakingItemVO.java

@@ -0,0 +1,47 @@
+package com.jsh.erp.datasource.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 盘点任务明细
+ */
+@Data
+@Accessors(chain = true)
+public class TaskStocktakingItemVO {
+
+    @ApiModelProperty("主键ID")
+    private Long id;
+
+    @ApiModelProperty("任务ID")
+    private Long taskStocktakingId;
+
+    @ApiModelProperty("商品ID")
+    private Long materialItemId;
+
+    @ApiModelProperty("操作人ID")
+    private Long creator;
+
+    @ApiModelProperty("操作时间")
+    private Date operTime;
+
+    @ApiModelProperty("新仓位货架")
+    private String newPosition;
+
+    @ApiModelProperty("新库存数")
+    private BigDecimal newInventory;
+
+    @ApiModelProperty("差异数量")
+    private Integer differenceCount;
+
+    @ApiModelProperty("差异原因")
+    private String differenceReason;
+
+    @ApiModelProperty("删除标记,0.未删除,1.已删除")
+    private boolean deleteFlag;
+
+}

+ 26 - 0
src/main/java/com/jsh/erp/datasource/vo/TaskStocktakingVO.java

@@ -0,0 +1,26 @@
+package com.jsh.erp.datasource.vo;
+
+import com.jsh.erp.datasource.entities.TaskStocktaking;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 盘点任务
+ */
+@Data
+@Accessors(chain = true)
+public class TaskStocktakingVO extends TaskStocktaking {
+
+    @ApiModelProperty(value = "负责人名称")
+    private String creatorName;
+
+    @ApiModelProperty("创建人名称")
+    private String createByName;
+
+    @ApiModelProperty("仓库名称")
+    private String depotName;
+
+}

+ 24 - 0
src/main/java/com/jsh/erp/service/TaskStocktakingService.java

@@ -3,8 +3,32 @@ package com.jsh.erp.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jsh.erp.datasource.dto.TaskStocktakingDTO;
 import com.jsh.erp.datasource.entities.TaskStocktaking;
+import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
+import com.jsh.erp.datasource.vo.TaskStocktakingVO;
+
+import java.util.List;
 
 public interface TaskStocktakingService extends IService<TaskStocktaking> {
 
+    /**
+     * 新增任务
+     * @param taskStocktakingDTO
+     * @return
+     */
     boolean add(TaskStocktakingDTO taskStocktakingDTO);
+
+    /**
+     * 任务-详情
+     * @param id 任务ID
+     */
+    TaskStocktakingVO detail(Long id) throws Exception;
+
+    /**
+     * 任务详情-商品明细
+     * @param taskStocktakingId 盘点任务ID
+     * @return
+     */
+    List<TaskStocktakingItemVO> listByTaskStocktakingId(Long taskStocktakingId);
+
+
 }

+ 4 - 0
src/main/java/com/jsh/erp/service/UserService.java

@@ -17,6 +17,10 @@ import java.util.Map;
 public interface UserService extends IService<User> {
     User getUser(long id)throws Exception;
 
+    /**
+     * 生成用户下拉框
+     * @return
+     */
     List<SpinnerVO> creatorSpinnerList();
     List<User> getUserListByIds(String ids)throws Exception;
 

+ 54 - 4
src/main/java/com/jsh/erp/service/impl/TaskStocktakingServiceImpl.java

@@ -1,15 +1,22 @@
 package com.jsh.erp.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jsh.erp.datasource.dto.TaskStocktakingDTO;
-import com.jsh.erp.datasource.entities.MaterialExtend;
-import com.jsh.erp.datasource.entities.TaskStocktaking;
+import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.mappers.MaterialExtendMapper;
+import com.jsh.erp.datasource.mappers.TaskStocktakingItemMapper;
 import com.jsh.erp.datasource.mappers.TaskStocktakingMapper;
+import com.jsh.erp.datasource.mappers.UserMapper;
+import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
+import com.jsh.erp.datasource.vo.TaskStocktakingVO;
+import com.jsh.erp.query.LambdaQueryWrapperX;
+import com.jsh.erp.service.DepotService;
 import com.jsh.erp.service.TaskStocktakingService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -26,6 +33,17 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
 
     private final MaterialExtendMapper materialExtendMapper;
 
+    private final UserMapper userMapper;
+
+    private final DepotService depotService;
+
+    private final TaskStocktakingItemMapper taskStocktakingItemMapper;
+
+    /**
+     * 创建盘点任务
+     * @param taskStocktakingDTO
+     * @return
+     */
     @Override
     public boolean add(TaskStocktakingDTO taskStocktakingDTO) {
         //商品库位范围处理
@@ -37,9 +55,41 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
         }
         String positionRange = extractRangePair(collect);
         this.save(taskStocktakingDTO);
-        
+        return true;
+    }
 
-        return false;
+    /**
+     * 任务-详情
+     * @param id 任务ID
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public TaskStocktakingVO detail(Long id) throws Exception{
+        TaskStocktaking one = getOne(new LambdaQueryWrapperX<TaskStocktaking>().eq(TaskStocktaking::getId, id));
+        TaskStocktakingVO taskStocktakingVO = new TaskStocktakingVO();
+        BeanUtils.copyProperties(one, taskStocktakingVO);
+        //获取负责人名称
+        User user = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getId, one.getCreator()));
+        taskStocktakingVO.setCreatorName(user.getLoginName());
+        //获取创建人名称
+        User user1 = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getId, one.getCreateBy()));
+        taskStocktakingVO.setCreateByName(user1.getLoginName());
+        //获取仓库名称
+        Depot depot = depotService.getDepot(one.getDepotId());
+        taskStocktakingVO.setDepotName(depot.getName());
+        //当任务类型是抽盘时,返回商品盘点信息
+        return taskStocktakingVO;
+    }
+
+    /**
+     * 任务详情-商品明细
+     * @param taskStocktakingId 盘点任务ID
+     * @return
+     */
+    @Override
+    public List<TaskStocktakingItemVO> listByTaskStocktakingId(Long taskStocktakingId) {
+        return taskStocktakingItemMapper.listByTaskStocktakingId(taskStocktakingId);
     }
 
     /**

+ 4 - 0
src/main/java/com/jsh/erp/service/impl/UserServiceImpl.java

@@ -76,6 +76,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return result;
     }
 
+    /**
+     * 获取用户下拉框数据
+     * @return
+     */
     @Override
     public List<SpinnerVO> creatorSpinnerList() {
         return userMapper.creatorSpinnerList();

+ 26 - 0
src/main/resources/mapper_xml/TaskStocktakingItemMapper.xml

@@ -2,4 +2,30 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jsh.erp.datasource.mappers.TaskStocktakingItemMapper">
 
+    <select id="listByTaskStocktakingId" resultType="com.jsh.erp.datasource.vo.TaskStocktakingItemVO">
+        SELECT
+            m.`name` AS category_name,
+            m.`name` AS material_name,
+            m.system_sku AS system_sku,
+            m.commodity_unit AS commodity_unit,
+            me.production_date AS production_date,
+            s.`name` AS supplier_name,
+            me.bar_code AS bar_code,
+            me.inventory AS inventory,
+            d.`name` AS depot_name,
+            tsi.new_position AS new_position,
+            tsi.new_inventory AS new_inventory,
+            tsi.difference_count AS difference_count,
+            tsi.difference_reason AS difference_reason
+        FROM
+            task_stocktaking_item tsi
+                LEFT JOIN jsh_material_extend me ON tsi.material_item_id = me.id
+                LEFT JOIN jsh_material m ON me.material_id = m.id
+                LEFT JOIN jsh_material_category mc ON mc.id = m.category_id
+                LEFT JOIN jsh_supplier s ON me.supplier_id = s.id
+                LEFT JOIN jsh_depot d AS me.depot_id = d.id
+        WHERE
+            tsi.task_stocktaking_id = #{taskStocktakingId}
+    </select>
+
 </mapper>

+ 2 - 2
src/main/resources/mapper_xml/UserMapper.xml

@@ -400,8 +400,8 @@
 
   <select id="creatorSpinnerList" resultType="com.jsh.erp.datasource.vo.SpinnerVO">
     SELECT
-      id AS label,
-      username AS VALUE
+      id AS value,
+      username AS label
     FROM
       jsh_user
   </select>