Browse Source

物料接受

home 2 năm trước cách đây
mục cha
commit
d7b89bcc3d

+ 43 - 0
hx-service/storage/src/main/java/com/fjhx/applet/controller/MaterialReceiveController.java

@@ -0,0 +1,43 @@
+package com.fjhx.applet.controller;
+
+import com.fjhx.applet.service.MaterialReceiveService;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/materialReceive")
+public class MaterialReceiveController {
+
+    @Autowired
+    private MaterialReceiveService materialReceiveService;
+
+    /**
+     * 手持机出库提交
+     */
+    @PostMapping("/submit")
+    public R submit() {
+        materialReceiveService.submit();
+        return R.success();
+    }
+
+    @PostMapping("/list")
+    public R list(@RequestBody Map<String, String> condition) {
+        List<Map<String, Object>> list = materialReceiveService.getList(condition.get("jobNo"));
+        return R.success(list);
+    }
+
+    @PostMapping("/operation")
+    public R operation(@RequestBody Map<String, Object> condition) {
+        materialReceiveService.operation(condition);
+        return R.success();
+    }
+
+
+}

+ 18 - 0
hx-service/storage/src/main/java/com/fjhx/applet/mapper/MaterialReceiveMapper.java

@@ -0,0 +1,18 @@
+package com.fjhx.applet.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.base.BaseEntity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface MaterialReceiveMapper extends BaseMapper<BaseEntity> {
+
+    List<Map<String, Object>> selectWaterDetail();
+
+    void updateReceive(@Param("idJoin") String idJoin, @Param("status") Integer status);
+
+    List<Map<String, Object>> getList(@Param("jobNo") String jobNo);
+
+}

+ 37 - 0
hx-service/storage/src/main/java/com/fjhx/applet/mapper/MaterialReceiveMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.applet.mapper.MaterialReceiveMapper">
+
+
+    <select id="selectWaterDetail" resultType="java.util.Map">
+        select swd.ID              id,
+               swd.StockChangeType stockChangeType,
+               uu.JobNo            jobNo
+        from stock_waterdetial swd
+                 left join u_user uu on swd.OperUserId = uu.ID
+        where swd.InOutDevice = 1
+          and swd.material_receive = 0
+          and (swd.StockChangeType = 20 or (swd.StockChangeType = 23 and uu.RoleKey in ('sewing', 'crop')))
+    </select>
+
+    <update id="updateReceive">
+        update stock_waterdetial
+        set material_receive = #{status}
+        where id in ${idJoin}
+    </update>
+
+    <select id="getList" resultType="java.util.Map">
+        select swd.ID          id,
+               swd.ChangeNum   changeName,
+               swd.CreatedTime createTime,
+               m.Name          materialName,
+               m.Code          materialCode,
+               uu.RealName     realName
+        from stock_waterdetial swd
+                 left join material m on swd.MaterialCode = m.code
+                 left join u_user uu on swd.OperUserId = uu.ID
+        where swd.material_receive = 2
+          and uu.JobNo = #{jobNo}
+    </select>
+
+</mapper>

+ 17 - 0
hx-service/storage/src/main/java/com/fjhx/applet/service/MaterialReceiveService.java

@@ -0,0 +1,17 @@
+package com.fjhx.applet.service;
+
+import com.fjhx.base.BaseEntity;
+import com.fjhx.base.BaseService;
+
+import java.util.List;
+import java.util.Map;
+
+public interface MaterialReceiveService extends BaseService<BaseEntity> {
+
+    void submit();
+
+    List<Map<String, Object>> getList(String jobNo);
+
+    void operation(Map<String, Object> condition);
+
+}

+ 70 - 0
hx-service/storage/src/main/java/com/fjhx/applet/service/impl/MaterialReceiveServiceImpl.java

@@ -0,0 +1,70 @@
+package com.fjhx.applet.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.applet.mapper.MaterialReceiveMapper;
+import com.fjhx.applet.service.MaterialReceiveService;
+import com.fjhx.base.BaseEntity;
+import com.fjhx.utils.Assert;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.stream.Collectors;
+
+@Service
+public class MaterialReceiveServiceImpl extends ServiceImpl<MaterialReceiveMapper, BaseEntity> implements MaterialReceiveService {
+
+    @Override
+    public synchronized void submit() {
+
+        List<Map<String, Object>> list = baseMapper.selectWaterDetail();
+
+
+        Map<Integer, List<Map<String, Object>>> stockChangeType =
+                list.stream().collect(Collectors.groupingBy(item -> (Integer) item.get("stockChangeType")));
+
+        StringJoiner outJoiner = new StringJoiner(",", "(", ")");
+        // 出库处理
+        List<Map<String, Object>> outList = stockChangeType.get(20);
+        if (outList != null) {
+            for (Map<String, Object> map : outList) {
+                // TODO 发起审批流
+                outJoiner.add(map.get("id").toString());
+            }
+            baseMapper.updateReceive(outJoiner.toString(), 1);
+        }
+
+        // 补出库处理
+        StringJoiner repairJoiner = new StringJoiner(",", "(", ")");
+        List<Map<String, Object>> repairList = stockChangeType.get(23);
+        if (repairList != null) {
+            for (Map<String, Object> map : repairList) {
+                // TODO 发送消息
+                repairJoiner.add(map.get("id").toString());
+            }
+            baseMapper.updateReceive(repairJoiner.toString(), 2);
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getList(String jobNo) {
+        Assert.notEmpty(jobNo, "工号不能为空");
+        return baseMapper.getList(jobNo);
+    }
+
+    @Override
+    public void operation(Map<String, Object> condition) {
+        List<String> idList = (List<String>) condition.get("idList");
+        Integer operation = (Integer) condition.get("operation");
+
+        Assert.notEmpty(idList, "id列表不能为空");
+        Assert.notEmpty(operation, "操作类型不能为空");
+
+        StringJoiner idJoiner = new StringJoiner(",", "(", ")");
+        idList.forEach(idJoiner::add);
+
+        baseMapper.updateReceive(idJoiner.toString(), operation);
+    }
+
+}