Ver código fonte

问题修改

zhs 2 anos atrás
pai
commit
b8d71c7d6c

+ 68 - 0
src/main/java/com/tld/controller/UserMaterialController.java

@@ -0,0 +1,68 @@
+package com.tld.controller;
+
+import com.tld.model.UserMaterial;
+import com.tld.service.UserMaterialService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * 用户绑定物料
+ */
+@RestController
+@RequestMapping("userMaterial")
+@RequiredArgsConstructor
+public class UserMaterialController {
+
+    private final UserMaterialService userMaterialService;
+
+    /**
+     * 查询用户绑定物料信息
+     * @param userMaterial 参数
+     * @return 返回结果
+     */
+    @GetMapping("getUserMaterial")
+    public Map<String, Object> getUserMaterial(UserMaterial userMaterial){
+        return userMaterialService.getUserMaterial(userMaterial);
+    }
+
+    /**
+     * 新增用户绑定物料信息
+     * @param userMaterial 参数
+     * @return 返回结果
+     */
+    @PostMapping("addUserMaterial")
+    public Map<String, Object> addUserMaterial(@RequestBody UserMaterial userMaterial){
+        return userMaterialService.addUserMaterial(userMaterial);
+    }
+
+    /**
+     * 修改用户绑定物料信息
+     * @param userMaterial 参数
+     * @return 返回结果
+     */
+    @PostMapping("updateUserMaterial")
+    public Map<String, Object> updateUserMaterial(@RequestBody UserMaterial userMaterial){
+        return userMaterialService.updateUserMaterial(userMaterial);
+    }
+
+    /**
+     * 删除用户绑定物料信息
+     * @param id 参数
+     * @return 返回结果
+     */
+    @DeleteMapping("delUserMaterial")
+    public Map<String, Object> delUserMaterial(String id){
+        return userMaterialService.delUserMaterial(id);
+    }
+
+    /**
+     * 查询所有用户
+     * @return 参数
+     */
+    @GetMapping("getUser")
+    public Map<String, Object> getUser(){
+        return userMaterialService.getUser();
+    }
+}

+ 20 - 0
src/main/java/com/tld/mapper/UserMaterialMapper.java

@@ -0,0 +1,20 @@
+package com.tld.mapper;
+
+import com.tld.model.User;
+import com.tld.model.UserMaterial;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface UserMaterialMapper {
+    List<UserMaterial> getUserMaterial(UserMaterial userMaterial);
+
+    void addUserMaterial(UserMaterial userMaterial);
+
+    void updateUserMaterial(UserMaterial userMaterial);
+
+    void delUserMaterial(String id);
+
+    List<User> getUser();
+}

+ 2 - 0
src/main/java/com/tld/mapper/WarehousingMapper.java

@@ -108,4 +108,6 @@ public interface WarehousingMapper {
     int getCountStorage(@Param("attribute")String attribute, @Param("storageLocationCode")String storageLocationCode, @Param("symbol")String symbol);
 
     void updateStorage(WarehousingVirtual warehousingVirtual1);
+
+    int getNumUtil(String type);
 }

+ 4 - 0
src/main/java/com/tld/model/Delivery.java

@@ -87,4 +87,8 @@ public class Delivery implements Serializable {
      * 用户id
      */
     private String userId;
+    /**
+     * 出库单id
+     */
+    private String storageCode;
 }

+ 4 - 0
src/main/java/com/tld/model/Notice.java

@@ -128,6 +128,10 @@ public class Notice implements Serializable {
      * 库位编号
      */
     private String storageLocationCode;
+    /**
+     * 入库单编号
+     */
+    private String storageCode;
     /**
      * 序列号
      */

+ 8 - 0
src/main/java/com/tld/model/Storage.java

@@ -104,4 +104,12 @@ public class Storage implements Serializable {
      * 条数
      */
     private int limit;
+    /**
+     * 入库单编号
+     */
+    private String storageCode;
+    /**
+     * wbs
+     */
+    private String wbs;
 }

+ 53 - 0
src/main/java/com/tld/model/UserMaterial.java

@@ -0,0 +1,53 @@
+package com.tld.model;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 用户物料绑定
+ */
+@Data
+@Accessors(chain = true)
+@SuppressWarnings("serial")
+public class UserMaterial {
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 物料id
+     */
+    private String materialId;
+    /**
+     * 生成日期
+     */
+    private String scrq;
+    /**
+     * 用户名称
+     */
+    private String userName;
+    /**
+     * 物料名称
+     */
+    private String materialName;
+    /**
+     * 物料编号
+     */
+    private String wllbCode;
+    /**
+     * 真实姓名
+     */
+    private String realName;
+    /**
+     * 页数
+     */
+    private int page;
+    /**
+     * 条数
+     */
+    private int limit;
+}

+ 17 - 0
src/main/java/com/tld/service/UserMaterialService.java

@@ -0,0 +1,17 @@
+package com.tld.service;
+
+import com.tld.model.UserMaterial;
+
+import java.util.Map;
+
+public interface UserMaterialService {
+    Map<String, Object> getUserMaterial(UserMaterial userMaterial);
+
+    Map<String, Object> addUserMaterial(UserMaterial userMaterial);
+
+    Map<String, Object> updateUserMaterial(UserMaterial userMaterial);
+
+    Map<String, Object> delUserMaterial(String id);
+
+    Map<String, Object> getUser();
+}

+ 14 - 7
src/main/java/com/tld/service/impl/AskGoodsServiceImpl.java

@@ -227,7 +227,8 @@ public class AskGoodsServiceImpl implements AskGoodsService {
                         .setNum(askGoods.getNum())
                         .setEntryNumber(askGoods1.getEntryNumber())
                         .setDocumentPointsId(askGoods1.getId())
-                        .setStorageLocationCode(askGoods.getStorageLocationCode());
+                        .setStorageLocationCode(askGoods.getStorageLocationCode())
+                        .setWbs(askGoods1.getWbs());
                 askGoodsMapper.addRemoval(askGoods);//插入出库流水
                 askGoodsMapper.deleteVirtual(askGoods.getId());//删除已出虚拟表库存
                 askGoodsMapper.addReturnGsRemoval(returRemoval);//新增返回gs数据子表信息
@@ -338,7 +339,7 @@ public class AskGoodsServiceImpl implements AskGoodsService {
             //导出数据汇总
             List<List<Object>> sheetDataList = new ArrayList<>();
             //表头数据
-            List<Object> head = Arrays.asList("物料名称", "供应商名称", "连号", "类型", "出库用户", "领用部门", "库位名称", "出库日期", "出库数量");
+            List<Object> head = Arrays.asList("物料名称", "供应商名称", "连号", "类型", "出库用户", "领用部门", "库位名称", "出库日期", "出库数量");
             //查询数据
             PageHelper.startPage(askGoods.getPage(), askGoods.getLimit());
             PageInfo<Map<String, Object>> list = new PageInfo<>(askGoodsMapper.export(askGoods));
@@ -429,7 +430,7 @@ public class AskGoodsServiceImpl implements AskGoodsService {
             //导出数据汇总
             List<List<Object>> sheetDataList = new ArrayList<>();
             //表头数据
-            List<Object> head = Arrays.asList("物料名称", "出库数量", "用户名称", "出库时间", "要货单ID", "领用部门");
+            List<Object> head = Arrays.asList("物料名称", "出库数量", "用户名称", "出库时间", "要货单ID", "领用部门", "出库单编号", "WBS");
             //查询数据
             PageHelper.startPage(askGoods.getPage(), askGoods.getLimit());
             PageInfo<Map<String, Object>> list = new PageInfo<>(askGoodsMapper.getRemovalHalfProductExcel(askGoods));
@@ -473,7 +474,7 @@ public class AskGoodsServiceImpl implements AskGoodsService {
             //导出数据汇总
             List<List<Object>> sheetDataList = new ArrayList<>();
             //表头数据
-            List<Object> head = Arrays.asList("物料名称", "出库数量", "用户名称", "出库时间", "公司名称", "客户名称");
+            List<Object> head = Arrays.asList("物料名称", "出库数量", "用户名称", "出库时间", "公司名称", "客户名称", "出库单编号", "WBS");
             //查询数据
             PageHelper.startPage(askGoods.getPage(), askGoods.getLimit());
             PageInfo<Map<String, Object>> list = new PageInfo<>(askGoodsMapper.getRemovalHalfExcel(askGoods));
@@ -528,6 +529,7 @@ public class AskGoodsServiceImpl implements AskGoodsService {
                 inventory.get(0).setAmount(askGoods.getNum());
                 askGoodsMapper.updateInventory(inventory.get(0));
             }
+            String removalCode = codeGenerateCk();
             if(material.getPartType().equals("半成品")){
                 //新增半成品出库流水
                 AskGoods askGoods1 = new AskGoods()
@@ -535,7 +537,9 @@ public class AskGoodsServiceImpl implements AskGoodsService {
                         .setNum(askGoods.getNum())
                         .setUserId(askGoods.getUserId())
                         .setAskGoodsId("")
-                        .setDepartment(askGoods.getDepartment());//新增出库流水
+                        .setDepartment(askGoods.getDepartment())
+                        .setWbs(askGoods.getWbs())
+                        .setStorageCode(removalCode);//新增出库流水
                 warehousingMapper.addRemovalHalfProduct(askGoods1);
             } else if(material.getPartType().equals("产成品")){
                 //产成品销售流水
@@ -545,17 +549,20 @@ public class AskGoodsServiceImpl implements AskGoodsService {
                         .setUserId(askGoods.getUserId()) //用户id
                         .setDeliveryId("") //销售单id
                         .setCompanyNumber("") //公司编号
-                        .setCustomerCode(""); //客户编号
+                        .setCustomerCode("")//客户编号
+                        .setWbs(askGoods.getWbs())
+                        .setStorageCode(removalCode);
                 deliveryMapper.addRemovalHalf(delivery1); //流水录入
             } else {
                 askGoods.setSupplierId(inventory.get(0).getSupplierId());
                 askGoods.setType("其他出库");
                 askGoods.setProducDate(inventory.get(0).getProducDate());
                 askGoods.setSerial(inventory.get(0).getSerial());
+                askGoods.setStorageCode(removalCode);
+                askGoods.setWbs(askGoods.getWbs());
                 askGoodsMapper.addRemoval(askGoods);//插入出库流水
             }
             //新增返回gs信息
-            String removalCode = codeGenerateCk();
             ReturRemoval returRemoval = new ReturRemoval()
                     .setMaterialId(material.getTldId())
                     .setWbs(askGoods.getWbs())

+ 6 - 14
src/main/java/com/tld/service/impl/DeliveryServiceImpl.java

@@ -52,7 +52,7 @@ public class DeliveryServiceImpl implements DeliveryService {
             Map<String, Object> occupyMap = new HashMap<>();
             for(Inventory inventory : deliveryMapper.getInventory(storageLocationCode, delivery)){
                 int occupy = deliveryMapper.getVitrual(inventory);
-                if(Integer.parseInt(inventory.getAmount()) > occupy){
+                if(Integer.parseInt(inventory.getAmount()) == occupy){
                     list.add(inventory);
                     int num = Integer.parseInt(inventory.getAmount()) - occupy;
                     occupyMap.put(inventory.getStorageLocationCode(), num);
@@ -76,6 +76,7 @@ public class DeliveryServiceImpl implements DeliveryService {
         RLock lock = redissonClient.getLock(uniqueCode);
         lock.lock();
         try{
+            String removalCode = codeGenerateCk();
             for(AskGoods askGoods : askGoodsMapper.getAskGoodsVitrual(uniqueCode, type)){
                 Inventory inventory = deliveryMapper.getInventoryHalf(askGoods);
                 //如果出库库存等于虚拟表库存则删除此库存
@@ -97,7 +98,9 @@ public class DeliveryServiceImpl implements DeliveryService {
                         .setUserId(askGoods.getUserId()) //用户id
                         .setDeliveryId(deliveryId) //销售单id
                         .setCompanyNumber(list.get(0).getCompanyNumber()) //公司编号
-                        .setCustomerCode(list.get(0).getCustomerCode()); //客户编号
+                        .setCustomerCode(list.get(0).getCustomerCode())//客户编号
+                        .setStorageCode(removalCode) //出库流水
+                        .setWbs(list.get(0).getWbs());// wbs
                 deliveryMapper.addRemovalHalf(delivery1); //流水录入
                 askGoodsMapper.deleteVirtual(askGoods.getId());//删除已出虚拟表库存
                 ReturRemoval returRemoval = new ReturRemoval()
@@ -111,7 +114,6 @@ public class DeliveryServiceImpl implements DeliveryService {
                 askGoodsMapper.addReturnGsRemoval(returRemoval);//新增返回gs数据子表信息
             }
             //新增销售单出库父表信息
-            String removalCode = codeGenerateCk();
             Delivery delivery = deliveryMapper.getDeliveryF(deliveryId);
             ReturRemoval returRemoval1 = new ReturRemoval()
                     .setDocumentId(delivery.getDeliveryId())
@@ -139,17 +141,7 @@ public class DeliveryServiceImpl implements DeliveryService {
         try{
             //查询所有产成品库位
             String storageLocationCode = deliveryMapper.getStorageLocationCodeList();
-            List<Inventory> list = new LinkedList<>();
-            Map<String, Object> occupyMap = new HashMap<>();
-            for(Inventory inventory : deliveryMapper.getAttribute(storageLocationCode, delivery)){
-                int amount = deliveryMapper.getSumAmount(inventory);
-                int occupy = deliveryMapper.getVitrual(inventory);
-                int num = Integer.parseInt(inventory.getAmount()) - occupy;
-                if(amount > (occupy + Integer.parseInt(delivery.getOutNum()))){
-                    list.add(inventory);
-                    occupyMap.put(inventory.getStorageLocationCode(), num);
-                }
-            }
+            List<Inventory> list = deliveryMapper.getAttribute(storageLocationCode, delivery);
             map.put("data", list);
             map.put("msg", "200");
         }catch (Exception e){

+ 99 - 0
src/main/java/com/tld/service/impl/UserMaterialServiceImpl.java

@@ -0,0 +1,99 @@
+package com.tld.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.tld.mapper.UserMaterialMapper;
+import com.tld.model.Role;
+import com.tld.model.User;
+import com.tld.model.UserMaterial;
+import com.tld.service.UserMaterialService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@RequiredArgsConstructor
+public class UserMaterialServiceImpl implements UserMaterialService {
+
+    private final UserMaterialMapper userMaterialMapper;
+
+    @Override
+    public Map<String, Object> getUserMaterial(UserMaterial userMaterial) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            PageHelper.startPage(userMaterial.getPage(), userMaterial.getLimit());
+            PageInfo<UserMaterial> list = new PageInfo<>(userMaterialMapper.getUserMaterial(userMaterial));
+            map.put("data", list);
+            map.put("msg", "200");
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> addUserMaterial(UserMaterial userMaterial) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            userMaterialMapper.addUserMaterial(userMaterial);
+            map.put("msg", "200");
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> updateUserMaterial(UserMaterial userMaterial) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            userMaterialMapper.updateUserMaterial(userMaterial);
+            map.put("msg", "200");
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> delUserMaterial(String id) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            userMaterialMapper.delUserMaterial(id);
+            map.put("msg", "200");
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> getUser() {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            List<User> list = userMaterialMapper.getUser();
+            map.put("data", list);
+            map.put("msg", "200");
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+}

+ 9 - 6
src/main/java/com/tld/service/impl/WarehouseTransferServiceImpl.java

@@ -112,7 +112,8 @@ public class WarehouseTransferServiceImpl implements WarehouseTransferService {
                         .setUserId(askGoods.getUserId())//用户
                         .setDepartmentId(askGoods.getDepartmentId())//部门
                         .setStorageLocationCode(askGoods.getStorageLocationCode())//库位编号
-                        .setStorageCode(warehouseTransferCode);//移库单号
+                        .setStorageCode(warehouseTransferCode)//移库单号
+                        .setWbs(warehouseTransfer.getWbs());//wbs
                 warehousing.add(WarehousingVirtual1);
                 askGoodsMapper.addRemoval(askGoods);//插入出库流水
                 askGoodsMapper.deleteVirtual(askGoods.getId());//删除已出虚拟表库存
@@ -132,7 +133,7 @@ public class WarehouseTransferServiceImpl implements WarehouseTransferService {
                     .setWarehouseTransferCode(warehouseTransferCode)//移库单编号
                     .setAskGoodsWarehouseId(warehouseTransferF.getAskGoodsWarehouseId()) //要货仓库id
                     .setWarehouseTransferType(warehouseTransferF.getWarehouseTransferType()); //移库类型
-            warehouseTransferMapper.addReturnGsWarehouseTransferF(warehouseTransfer1);//新增返回gs数据表信息
+            warehouseTransferMapper.addReturnGsWarehouseTransferF(warehouseTransfer1);//新增返回gs数据表信息
             warehousingMapper.addStorage(warehousing);//入库流水
             map.put("data", warehouseTransferCode);
             map.put("msg", "200");
@@ -154,6 +155,7 @@ public class WarehouseTransferServiceImpl implements WarehouseTransferService {
             //入库信息
             List<WarehousingVirtual> list = new LinkedList<>();
             List<WarehousingVirtual> warehousingVirtualList = warehousingMapper.getVirtual(uniqueCode, type);
+            String warehouseTransferCode = codeGenerateYK(); //移库单
             //查询入库所需要的信息
             for(WarehousingVirtual warehousingVirtual : warehousingVirtualList) {
                 //查询采购单信息
@@ -162,6 +164,7 @@ public class WarehouseTransferServiceImpl implements WarehouseTransferService {
                 if(warehouseTransfer != null) {
                     //WBS
                     warehousingVirtual.setWbs(warehouseTransfer.getWbs());
+                    warehousingVirtual.setWbs(warehouseTransfer.getWbs());
                 }
                 //查询部门编号
                 List<User> listUser = userMapper.getAllUser(new User().setId(Integer.parseInt(warehousingVirtual.getUserId())));
@@ -170,6 +173,7 @@ public class WarehouseTransferServiceImpl implements WarehouseTransferService {
                 WarehousingVirtual warehousingVirtual1 = warehousingMapper.getWlClass(warehousingVirtual);
                 warehousingVirtual.setWllbClass(warehousingVirtual1.getWllbClass());
                 warehousingVirtual.setMaterialId(warehousingVirtual1.getMaterialId());
+                warehousingVirtual.setStorageCode(warehouseTransferCode);
                 list.add(warehousingVirtual);
                 warehouseTransferMapper.updateOutNum(warehousingVirtual.getNum(), warehousingVirtual.getWarehouseTransferId(), materialId);//修改出库数量
                 WarehouseTransfer warehouseTransfer1 = new WarehouseTransfer()
@@ -186,15 +190,14 @@ public class WarehouseTransferServiceImpl implements WarehouseTransferService {
             warehousingMapper.addInventory(list);//库存
             warehousingMapper.delVirtual(uniqueCode);//删除临时表数据
 
-            String warehouseTransfer = codeGenerateYK(); //移库单
             WarehouseTransfer warehouseTransferF = warehouseTransferMapper.getWarehouseTransferDetailedF(warehousingVirtualList.get(0).getWarehouseTransferId());//查询父表移库单申请
             WarehouseTransfer warehouseTransfer1 = new WarehouseTransfer()
                     .setWarehouseTransferId(warehouseTransferF.getWarehouseTransferId()) //移库单id
-                    .setWarehouseTransferCode(warehouseTransfer)//移库单编号
+                    .setWarehouseTransferCode(warehouseTransferCode)//移库单编号
                     .setAskGoodsWarehouseId(warehouseTransferF.getAskGoodsWarehouseId()) //要货仓库id
                     .setWarehouseTransferType(warehouseTransferF.getWarehouseTransferType()); //移库类型
-            warehouseTransferMapper.addReturnGsWarehouseTransferF(warehouseTransfer1);//新增返回gs数据表信息
-            map.put("data", warehouseTransfer);
+            warehouseTransferMapper.addReturnGsWarehouseTransferF(warehouseTransfer1);//新增返回gs数据表信息
+            map.put("data", warehouseTransferCode);
             map.put("msg", "200");
         } catch (Exception e){
             e.printStackTrace();

+ 26 - 12
src/main/java/com/tld/service/impl/WarehousingServiceImpl.java

@@ -163,6 +163,8 @@ public class WarehousingServiceImpl implements WarehousingService {
                     warehousingVirtual.setAccountSleeve(receiveGoods.get(0).getCompanyNumber());
                     //WBS
                     warehousingVirtual.setWbs(receiveGoods.get(0).getWbs());
+                    //流水编号
+                    warehousingVirtual.setStorageCode(receiveGoods.get(0).getOrderCode());
                 }
                 //查询部门编号
                 List<User> listUser = userMapper.getAllUser(new User().setId(Integer.parseInt(warehousingVirtual.getUserId())));
@@ -315,7 +317,7 @@ public class WarehousingServiceImpl implements WarehousingService {
             //导出数据汇总
             List<List<Object>> sheetDataList = new ArrayList<>();
             //表头数据
-            List<Object> head = Arrays.asList("物料名称", "供应商名称", "连号", "生产日期", "生产批次", "容量", "序列号", "类型", "用户名称", "部门", "库位名称", "入库日期");
+            List<Object> head = Arrays.asList("物料名称", "供应商名称", "连号", "生产日期", "生产批次", "容量", "序列号", "类型", "用户名称", "部门", "库位名称", "入库日期", "采购单号", "WBS");
             //查询数据
             PageHelper.startPage(storage.getPage(), storage.getLimit());
             PageInfo<Map<String, Object>> list = new PageInfo<>(warehousingMapper.export(storage));
@@ -389,7 +391,8 @@ public class WarehousingServiceImpl implements WarehousingService {
                     .setStorageLocationCode("000000")
                     .setProducDate(notice1.getNoticeTime())
                     .setNum(notice.getWarehousingNum())
-                    .setStorageCode(storageCode);
+                    .setStorageCode(storageCode)
+                    .setWbs(notice.getWbs());
             warehousingMapper.addProduct(warehousingVirtual);//入库流水 半成品
 
             ReturnWarehousing returnWarehousing = new ReturnWarehousing()
@@ -461,7 +464,8 @@ public class WarehousingServiceImpl implements WarehousingService {
                     .setUserId(notice.getUserId())
                     .setAskGoodsId(askGoods.getAskGoodsId())
                     .setDepartment(askGoods.getDepartment())
-                    .setStorageCode(removalCode);//新增出库流水
+                    .setStorageCode(removalCode)
+                    .setWbs(notice.getWbs());//新增出库流水
             warehousingMapper.addRemovalHalfProduct(askGoods1);
             ReturRemoval returRemoval = new ReturRemoval()
                     .setMaterialId(notice.getMaterialId())
@@ -510,7 +514,7 @@ public class WarehousingServiceImpl implements WarehousingService {
             //导出数据汇总
             List<List<Object>> sheetDataList = new ArrayList<>();
             //表头数据
-            List<Object> head = Arrays.asList("物料名称", "生产时间", "数量", "用户名称", "入库时间");
+            List<Object> head = Arrays.asList("物料名称", "生产时间", "数量", "用户名称", "入库时间", "入库单编号", "WBS");
             //查询数据
             PageHelper.startPage(notice.getPage(), notice.getLimit());
             PageInfo<Map<String, Object>> list = new PageInfo<>(warehousingMapper.productExcel(notice));
@@ -555,9 +559,15 @@ public class WarehousingServiceImpl implements WarehousingService {
                     String[] symbol = {"<", "="};
                     for(int i = 0; i < symbol.length; i++){
                         String storageLocationCode = warehousingMapper.getStorageLocationCode(notice.getAttribute(), symbol[i]); //查询昨天没满的库位
-                        if(!storageLocationCode.equals("0")){
+                        if(!storageLocationCode.equals("0")) {
                             int countStorage = warehousingMapper.getCountStorage(notice.getAttribute(), storageLocationCode, symbol[i]);
-                            if(countStorage < 7) {
+                            int num = 0;
+                            if(notice.getType().equals("0")){
+                                num = warehousingMapper.getNumUtil("产成品库位托盘定义");
+                            } else {
+                                num = Integer.parseInt(material.getSize());
+                            }
+                            if(countStorage < num) {
                                 stringBuffer.append(storageLocationCode + ",");
                                 List<StorageLocation> list = warehousingMapper.recommend(stringBuffer.toString());
                                 map.put("data", list);
@@ -586,6 +596,7 @@ public class WarehousingServiceImpl implements WarehousingService {
                         warehousingMapper.addInventoryNotice(notice);
                     }
                     warehousingMapper.updateNotice(notice);//修改报工单数量
+                    String storageCode = codeGenerateRk();
                     //入库流水
                     WarehousingVirtual warehousingVirtual = new WarehousingVirtual()
                             .setWllbCode(material.getWllbCode())
@@ -595,11 +606,12 @@ public class WarehousingServiceImpl implements WarehousingService {
                             .setNum(notice.getWarehousingNum())
                             .setSerial(notice.getSerial())
                             .setSeq(notice.getSeq())
-                            .setAttribute(notice.getAttribute());
+                            .setAttribute(notice.getAttribute())
+                            .setStorageCode(storageCode)
+                            .setWbs(notice.getWbs());
                     warehousingMapper.addHalf(warehousingVirtual);//入库流水 产成品
-                    Notice notice1 = warehousingMapper.getNoticeId(notice);
                     //存入给gs的返回数据
-                    String storageCode = codeGenerateRk();
+                    Notice notice1 = warehousingMapper.getNoticeId(notice);
                     ReturnWarehousing returnWarehousing = new ReturnWarehousing()
                             .setStorageCode(storageCode)//入库编号
                             .setSourceType(notice1.getSourceType())//来源类型
@@ -652,6 +664,7 @@ public class WarehousingServiceImpl implements WarehousingService {
                 warehousingMapper.addInventoryNotice(notice2);//入库存
                 warehousingMapper.updateNotice(notice2);//修改报工单数量
                 //入库流水
+                String storageCode = codeGenerateRk();
                 WarehousingVirtual warehousingVirtual1 = new WarehousingVirtual()
                         .setWllbCode(material.getWllbCode())
                         .setUserId(warehousingVirtual.getUserId())
@@ -660,10 +673,11 @@ public class WarehousingServiceImpl implements WarehousingService {
                         .setNum(warehousingVirtual.getNum())
                         .setSerial(warehousingVirtual.getSerial())
                         .setSeq(warehousingVirtual.getSeq())
-                        .setAttribute(warehousingVirtual.getAttribute());
+                        .setAttribute(warehousingVirtual.getAttribute())
+                        .setStorageCode(storageCode)
+                        .setWbs(notice1.getWbs());
                 warehousingMapper.addHalf(warehousingVirtual1);//入库流水 产成品
                 //存入给gs的返回数据
-                String storageCode = codeGenerateRk();
                 ReturnWarehousing returnWarehousing = new ReturnWarehousing()
                         .setStorageCode(storageCode)//入库编号
                         .setSourceType(notice1.getSourceType())//来源类型
@@ -712,7 +726,7 @@ public class WarehousingServiceImpl implements WarehousingService {
             //导出数据汇总
             List<List<Object>> sheetDataList = new ArrayList<>();
             //表头数据
-            List<Object> head = Arrays.asList("物料名称", "生产批次", "数量", "用户名称", "库位编号", "入库时间", "连翻号", "序列号", "属性");
+            List<Object> head = Arrays.asList("物料名称", "生产批次", "数量", "用户名称", "库位编号", "入库时间", "连番号", "序列号", "属性", "入库单编号", "WBS");
             //查询数据
             PageHelper.startPage(notice.getPage(), notice.getLimit());
             PageInfo<Map<String, Object>> list = new PageInfo<>(warehousingMapper.getHalfExcel(notice));

+ 14 - 6
src/main/resources/mapper/AskGoodsMapper.xml

@@ -187,8 +187,8 @@
     </delete>
     <!-- 插入出库流水 -->
     <insert id="addRemoval">
-        insert into tld_removal(wllb_code,supplier_id,serial,num,type,user_id,storage_location_code,scrq,process,ask_goods_id,produc_date,department,storage_code)
-        values(#{wllbCode},#{supplierId},#{serial},#{num},#{type},#{userId},#{storageLocationCode},now(),#{process},#{askGoodsId},#{producDate},#{department},#{storageCode})
+        insert into tld_removal(wllb_code,supplier_id,serial,num,type,user_id,storage_location_code,scrq,process,ask_goods_id,produc_date,department,storage_code,wbs)
+        values(#{wllbCode},#{supplierId},#{serial},#{num},#{type},#{userId},#{storageLocationCode},now(),#{process},#{askGoodsId},#{producDate},#{department},#{storageCode},#{wbs})
     </insert>
     <!-- 查询指定物料类型的id -->
     <select id="getMaterialId" resultType="String">
@@ -405,7 +405,9 @@
             c.name as department,
             b.name as materialName,
             e.user_name as userName,
-            b.code as materialCode
+            b.code as materialCode,
+            a.storage_code,
+            a.wbs
         from tld_removal_half_product a
         left join tld_material b on a.wllb_code = b.code
         left join tld_department c on a.department = c.tld_id
@@ -429,7 +431,9 @@
             e.user_name as userName,
             a.scrq,
             a.ask_goods_id,
-            c.name as department
+            c.name as department,
+            a.storage_code,
+            a.wbs
         from tld_removal_half_product a
         left join tld_material b on a.wllb_code = b.code
         left join tld_department c on a.department = c.tld_id
@@ -460,7 +464,9 @@
             c.user_name as userName,
             e.name as customerName,
             f.name as companyName,
-            b.code as materialCode
+            b.code as materialCode,
+            a.storage_code,
+            a.wbs
         from tld_removal_half a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -485,7 +491,9 @@
             c.user_name as userName,
             a.scrq,
             f.name as companyName,
-            e.name
+            e.name,
+            a.storage_code,
+            a.wbs
         from tld_removal_half a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id

+ 2 - 2
src/main/resources/mapper/DeliveryMapper.xml

@@ -98,8 +98,8 @@
     </update>
     <!-- 产成品出库流水 -->
     <insert id="addRemovalHalf">
-        insert into tld_removal_half(wllb_code,num,user_id,scrq,delivery_id,company_number,customer_code)
-        value(#{materialCode},#{outNum},#{userId},now(),#{deliveryId},#{companyNumber},#{customerCode})
+        insert into tld_removal_half(wllb_code,num,user_id,scrq,delivery_id,company_number,customer_code,storage_code,wbs)
+        value(#{materialCode},#{outNum},#{userId},now(),#{deliveryId},#{companyNumber},#{customerCode},#{storageCode},#{wbs})
     </insert>
     <!-- 查询销售单父级信息 -->
     <select id="getDeliveryF" resultType="com.tld.model.Delivery">

+ 69 - 0
src/main/resources/mapper/UserMaterialMapper.xml

@@ -0,0 +1,69 @@
+<?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.tld.mapper.UserMaterialMapper">
+    <!-- 查询用户绑定物料信息 -->
+    <select id="getUserMaterial" resultType="com.tld.model.UserMaterial">
+        select
+            a.id,
+            a.material_id,
+            a.user_id,
+            a.scrq,
+            b.name as materialName,
+            c.user_name as userName,
+            b.code as wllbCode,
+            c.real_name
+        from tld_user_material a
+        left join tld_material b on a.material_id = b.tld_id
+        left join tld_user c on a.user_id = c.id
+        <trim prefix="WHERE" prefixOverrides="and |or">
+            <if test="materialId != null and materialId != ''">
+                and a.material_id = #{materialId}
+            </if>
+            <if test="userId != null and userId != ''">
+                and a.user_id = #{userId}
+            </if>
+        </trim>
+        order by a.scrq desc
+    </select>
+    <!-- 新增用户绑定物料信息 -->
+    <insert id="addUserMaterial">
+        insert into tld_user_material(material_id,user_id,scrq) value(#{materialId},#{userId},now())
+    </insert>
+    <!-- 修改用户绑定物料信息 -->
+    <update id="updateUserMaterial">
+        update tld_user_material
+        <set>
+            <trim suffixOverrides=",">
+                <if test="materialId != null and materialId != ''">
+                    material_id = #{materialId},
+                </if>
+                <if test="userId != null and userId != ''">
+                    user_id = #{userId},
+                </if>
+            </trim>
+        </set>
+            where id = #{id}
+    </update>
+    <!-- 删除用户绑定物料信息 -->
+    <delete id="delUserMaterial">
+        delete from tld_user_material where id = #{id}
+    </delete>
+    <!-- 查询所有用户 -->
+    <select id="getUser" resultType="com.tld.model.User">
+        select
+            a.id,
+            a.code,
+            a.user_name,
+            a.password,
+            a.real_name,
+            a.email,
+            a.landline,
+            a.phone,
+            a.department,
+            a.role,
+            b.menu
+        from tld_user a
+        left join tld_role b on a.role = b.id
+    </select>
+</mapper>

+ 35 - 19
src/main/resources/mapper/WarehousingMapper.xml

@@ -145,10 +145,10 @@
     </select>
     <!-- 插入入库流水 -->
     <insert id="addStorage">
-        insert into tld_storage(wllb_code,supplier_id,serial,produc_date,produc_batch,capacity,seq,type,user_id,department_id,storage_location_code,scrq)
+        insert into tld_storage(wllb_code,supplier_id,serial,produc_date,produc_batch,capacity,seq,type,user_id,department_id,storage_location_code,scrq,storage_code,wbs)
         values
         <foreach collection="list" index="index" item="item" separator=",">
-            (#{item.wllbCode},#{item.suppId},#{item.serial},#{item.producDate},#{item.producDate},#{item.num},#{item.seq},#{item.type},#{item.userId},#{item.departmentId},#{item.storageLocationCode},now())
+            (#{item.wllbCode},#{item.suppId},#{item.serial},#{item.producDate},#{item.producDate},#{item.num},#{item.seq},#{item.type},#{item.userId},#{item.departmentId},#{item.storageLocationCode},now(),#{storageCode},#{wbs})
         </foreach>
     </insert>
     <!-- 插入库存 -->
@@ -192,7 +192,9 @@
             c.user_name as userName,
             e.name as departmentName,
             g.storage_location_name as storageLocationName,
-            a.scrq
+            a.scrq,
+            a.storage_code,
+            a.wbs
         from tld_storage a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -244,7 +246,9 @@
             c.user_name as userName,
             e.name as departmentName,
             g.storage_location_name as storageLocationName,
-            a.scrq
+            a.scrq,
+            a.storage_code,
+            a.wbs
         from tld_storage a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -280,7 +284,7 @@
             tld_id,
             specification_and_model,
             unit_of_measurement,
-            size,
+            ifnull(size, 0) as size,
             wllb_class,
             is_not_disable,
             is_recommend,
@@ -361,8 +365,8 @@
     <!-- 半成品跟部分产成品入库存 -->
     <insert id="addInventoryNotice">
         insert into
-            tld_inventory(storage_location_code,material_id,amount,hold,amount_lock,account_sleeve,wbs,produc_date,scrq,wllb_class,produc_batch,attribute,serial,supplier_id,wllb_code,account_sleeve)
-            value(#{storageLocationCode},#{materialId},#{warehousingNum},'0','0',#{companyNumber},#{wbs},now(),now(),#{wllbClass},#{producBatch},#{attribute},#{serial},#{supplierId},#{wllbCode},#{companyNumber});
+            tld_inventory(storage_location_code,material_id,amount,hold,amount_lock,account_sleeve,wbs,produc_date,scrq,wllb_class,produc_batch,attribute,serial,supplier_id,wllb_code,totime)
+            value(#{storageLocationCode},#{materialId},#{warehousingNum},'0','0',#{companyNumber},#{wbs},#{producBatch},now(),#{wllbClass},#{producBatch},#{attribute},#{serial},#{supplierId},#{wllbCode},now());
         update tld_notice set warehousing_num = #{warehousingNum},type = '1' where notice_id = #{noticeId} and material_id = #{materialId}
     </insert>
     <!-- 查询库存里是否存在半成品虚拟库位 -->
@@ -371,12 +375,12 @@
     </select>
     <!-- 增加半成品/产成品虚拟库位数量 -->
     <update id="updateInventoryNotice">
-        update tld_inventory set amount = amount + #{warehousingNum} where storage_location_code = #{storageLocationCode} and material_id = #{materialId};
+        update tld_inventory set amount = amount + #{warehousingNum},totime = now() where storage_location_code = #{storageLocationCode} and material_id = #{materialId};
         update tld_notice set warehousing_num = #{warehousingNum},type = '1' where notice_id = #{noticeId} and material_id = #{materialId}
     </update>
     <!-- 半成品出库库存查询 -->
     <select id="getHalfInventory" resultType="com.tld.model.Inventory">
-        select storage_location_code,wllb_class,material_id,amount from tld_inventory where storage_location_code = #{storageLocationCode} and material_id = #{materialId} and account_sleeve = #{accountSleeve}
+        select storage_location_code,wllb_class,material_id,amount from tld_inventory where storage_location_code = #{storageLocationCode} and material_id = #{materialId} and account_sleeve = #{companyNumber} and wbs = #{wbs}
     </select>
     <!-- 删除库存信息 -->
     <delete id="delInventoryNotice">
@@ -388,8 +392,8 @@
     </update>
     <!-- 新增半成品入库流水 -->
     <insert id="addProduct">
-        insert into tld_half_product(wllb_code,produc_date,produc_batch,capacity,user_id,storage_location_code,scrq,storage_code)
-        value(#{wllbCode},#{producDate},#{producDate},#{num},#{userId},#{storageLocationCode},now(),#{storageCode})
+        insert into tld_half_product(wllb_code,produc_date,produc_batch,capacity,user_id,storage_location_code,scrq,storage_code,wbs)
+        value(#{wllbCode},#{producDate},#{producDate},#{num},#{userId},#{storageLocationCode},now(),#{storageCode},#{wbs})
     </insert>
     <!-- 查询半成品入库流水-->
     <select id="getProduct" resultType="com.tld.model.Notice">
@@ -404,7 +408,9 @@
             a.storage_location_code,
             a.scrq,
             b.name as materialName,
-            b.code as materialCode
+            b.code as materialCode,
+            a.storage_code,
+            a.wbs
         from tld_half_product a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -428,7 +434,9 @@
             a.produc_date,
             a.capacity,
             c.user_name,
-            a.scrq
+            a.scrq,
+            a.storage_code,
+            a.wbs
         from tld_half_product a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -472,8 +480,8 @@
     </update>
     <!-- 新增半成品流水 -->
     <insert id="addRemovalHalfProduct">
-        insert into tld_removal_half_product(wllb_code,num,user_id,scrq,ask_goods_id,department,storage_code)
-        value(#{wllbCode},#{num},#{userId},now(),#{askGoodsId},#{department},#{storageCode})
+        insert into tld_removal_half_product(wllb_code,num,user_id,scrq,ask_goods_id,department,storage_code,wbs)
+        value(#{wllbCode},#{num},#{userId},now(),#{askGoodsId},#{department},#{storageCode},#{wbs})
     </insert>
     <!-- 查询指定物料内容 -->
     <select id="getMaterial" resultType="com.tld.model.MaterialClass">
@@ -523,8 +531,8 @@
     </select>
     <!-- 产成品入库 -->
     <insert id="addHalf">
-        insert into tld_half(wllb_code,produc_date,produc_batch,capacity,user_id,storage_location_code,scrq,serial,seq,attribute)
-        value(#{wllbCode},#{producDate},#{producDate},#{num},#{userId},#{storageLocationCode},now(),#{serial},#{seq},#{attribute})
+        insert into tld_half(wllb_code,produc_date,produc_batch,capacity,user_id,storage_location_code,scrq,serial,seq,attribute,storage_code,wbs)
+        value(#{wllbCode},#{producDate},#{producDate},#{num},#{userId},#{storageLocationCode},now(),#{serial},#{seq},#{attribute},#{storageCode},#{wbs})
     </insert>
     <!-- 查询虚拟表数据进行入库 -->
     <select id="getVirtualNotice" resultType="com.tld.model.WarehousingVirtual">
@@ -564,7 +572,9 @@
             a.attribute,
             b.name as materialName,
             c.user_name as userName,
-            b.code as materialCode
+            b.code as materialCode,
+            a.storage_code,
+            a.wbs
         from tld_half a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -592,7 +602,9 @@
             a.scrq,
             a.serial,
             a.seq,
-            a.attribute
+            a.attribute,
+            a.storage_code,
+            a.wbs
         from tld_half a
         left join tld_material b on a.wllb_code = b.code
         left join tld_user c on a.user_id = c.id
@@ -649,4 +661,8 @@
     <update id="updateStorage">
         update tld_storage set storage_code = #{storageCode} where wllb_code = #{wllbCode} and supplier_id = #{suppId} and serial = #{serial} and produc_batch = #{producDate}
     </update>
+    <!-- 查询公共设置 -->
+    <select id="getNumUtil" resultType="int">
+        select num from tld_util where type = #{type}
+    </select>
 </mapper>