Sfoglia il codice sorgente

1、搅拌槽通讯先读再写
2、出库整体流程(与搅拌槽通讯)

LZH 1 anno fa
parent
commit
9c49bc77d2

+ 19 - 1
ruoyi-admin/src/main/java/com/ruoyi/xuankuang/controller/test/TankTestController.java

@@ -1,5 +1,7 @@
 package com.ruoyi.xuankuang.controller.test;
 
+import com.ruoyi.ams.xuankuang.service.StirringTankClientService;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.hard.xuankang.StirringTankClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -22,6 +24,8 @@ public class TankTestController {
 
     @Autowired
     StirringTankClient stirringTankClient;
+    @Autowired
+    StirringTankClientService stirringTankClientService;
 
     @ApiOperation("读碳酸钠搅拌槽液位")
     @GetMapping("/readTank01")
@@ -145,9 +149,23 @@ public class TankTestController {
         return stirringTankClient.writeTank04();
     }
 
-    @ApiOperation("写仓库注入碳酸钠成")
+    @ApiOperation("写仓库注入碳酸钠成")
     @PostMapping("/writeTank05")
     public Boolean writeTank05() {
         return stirringTankClient.writeTank05();
     }
+
+    @ApiOperation("对比碳酸钠库存")
+    @PostMapping("/matchInventory_1")
+    public Boolean matchInventory_1() {
+        return stirringTankClientService.matchInventory_1();
+    }
+
+
+    @ApiOperation("触发出库流程")
+    @PostMapping("/outbound_1")
+    public AjaxResult outbound_1() {
+        return stirringTankClientService.outbound_1();
+    }
+
 }

+ 14 - 0
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/BaseLocationInfoSubService.java

@@ -4,10 +4,13 @@ import com.alibaba.fastjson.JSON;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
+import com.ruoyi.base.mapper.BaseLocationInfoMapper;
 import com.ruoyi.base.service.IBaseLocationInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.crypto.interfaces.PBEKey;
+import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -23,6 +26,8 @@ public class BaseLocationInfoSubService {
 
     @Autowired
     private IBaseLocationInfoService baseLocationInfoService;
+    @Autowired
+    private BaseLocationInfoMapper baseLocationInfoMapper;
 
 
     /**
@@ -98,4 +103,13 @@ public class BaseLocationInfoSubService {
                 , sku
                 , orderBy);
     }
+
+    /**
+     * 查询出所有库存的数量信息
+     * @param sku
+     * @return
+     */
+    public List<BigDecimal> checkInventory(String sku){
+        return baseLocationInfoMapper.checkInventory(sku);
+    }
 }

+ 67 - 0
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/StirringTankClientService.java

@@ -0,0 +1,67 @@
+package com.ruoyi.ams.xuankuang.service;
+
+
+import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
+import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
+import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
+import com.ruoyi.base.constant.Constant;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.hard.xuankang.StirringTankClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Jwk
+ * @version 1.0
+ * @date 2023/4/24 15:31
+ */
+@Service
+public class StirringTankClientService {
+
+    @Autowired
+    StirringTankClient stirringTankClient;
+    @Autowired
+    BaseLocationInfoSubService baseLocationInfoSubService;
+    @Autowired
+    WmsDocOrderSubService wmsDocOrderSubService;
+
+    /**
+     * 对比碳酸钠库存
+     *
+     * @param sku
+     * @return
+     */
+    public boolean matchInventory_1() {
+        String sku = "Na2CO3";
+        BigDecimal b = new BigDecimal(0);
+        Number number = stirringTankClient.readTank07();
+        List<BigDecimal> bigDecimals = baseLocationInfoSubService.checkInventory(sku);
+        for (BigDecimal bigDecimal : bigDecimals) {
+            b = b.add(bigDecimal);
+        }
+        if (number.intValue() <= b.intValue()) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * 触发碳酸钠出库流程
+     * @return
+     */
+    public AjaxResult outbound_1() {
+        String sku = "Na2CO3";
+        Number number = stirringTankClient.readTank07();
+        BigDecimal qty = new BigDecimal(number.toString());
+        String orderNo = wmsDocOrderSubService.generateAnOutboundOrder(sku, qty);
+        if (matchInventory_1()){
+            wmsDocOrderSubService.initOrderDetails(orderNo);
+        }
+        return AjaxResult.success();
+    }
+}

+ 32 - 1
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WmsDocOrderSubService.java

@@ -235,7 +235,7 @@ public class WmsDocOrderSubService {
     }
 
     /**
-     * 生成出库单方法
+     * 生成越库出库单方法
      * @param asnNo
      * @return
      */
@@ -263,6 +263,37 @@ public class WmsDocOrderSubService {
         }
         return AjaxResult.success();
     }
+
+    /**
+     * 生成出库单方法
+     * @param asnNo
+     * @return
+     */
+    public String generateAnOutboundOrder(String sku,BigDecimal qty) {
+        // 生成单头
+        WmsDocOrderHeader wmsDocOrderHeader = new WmsDocOrderHeader();
+        String orderNo = idSequenceUtils.generateId("ORDERNO");
+        wmsDocOrderHeader.setOrderNo(orderNo);
+        wmsDocOrderHeader.setEdiSendFlag("N");
+        wmsDocOrderHeader.setOrderStatus(Constant.ORDER_STS.STS00.getValue());
+        wmsDocOrderHeader.setCreateTime(new Date());
+        wmsDocOrderHeader.setOrderType(Constant.ORDER_TYP.DZ.getValue());
+        wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(wmsDocOrderHeader);
+
+        //生成明细
+        WmsDocOrderDetails wmsDocOrderDetails = new WmsDocOrderDetails();
+        wmsDocOrderDetails.setOrderNo(orderNo);
+        wmsDocOrderDetails.setOrderLineNo(new BigDecimal(1));
+        wmsDocOrderDetails.setCustomerId(Constant.CUSTOMER_ID);
+        wmsDocOrderDetails.setLineStatus(Constant.ORDER_STS.STS00.getValue());
+        wmsDocOrderDetails.setSku(sku);
+        wmsDocOrderDetails.setQtyOrdered(qty);
+        wmsDocOrderDetails.setQtyOrderedEach(qty);
+        wmsDocOrderDetails.setCreateTime(new Date());
+        wmsDocOrderDetails.setQtyAllocatedEach(new BigDecimal(0));
+        iWmsDocOrderHeaderService.insertWmsDocOrderDetails(wmsDocOrderDetails);
+        return orderNo;
+    }
    /* *//**
      * 取消分配
      *//*

+ 8 - 0
warewms-base/src/main/java/com/ruoyi/base/mapper/BaseLocationInfoMapper.java

@@ -7,6 +7,7 @@ import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
 import com.ruoyi.base.domain.vo.LotattVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -249,4 +250,11 @@ public interface BaseLocationInfoMapper {
      * @return
      */
     List<BaseLocationGuiDTO> queryByListAllInvLotAttView(@Param("zoneId") String zoneId, @Param("sort") String sort);
+
+    /**
+     * 查询所有库存
+     * @param sku
+     * @return
+     */
+    List<BigDecimal> checkInventory(@Param("sku") String sku);
 }

File diff suppressed because it is too large
+ 493 - 346
warewms-base/src/main/resources/mapper/base/BaseLocationInfoMapper.xml


+ 375 - 32
warewms-hard/src/main/java/com/ruoyi/hard/xuankang/StirringTankClient.java

@@ -22,23 +22,7 @@ import static com.ruoyi.hard.xuankang.StirringTankClient.STIR_TANK_COMMAND.*;
 @Slf4j
 @Service
 public class StirringTankClient {
-    //转换为bool数组
-    protected boolean[] convertToBooleans(Number num) {
-        int i = num.intValue();
-        String string = Integer.toBinaryString(i);
-        StringBuilder stringBuilder = new StringBuilder(string);
-        String string1 = stringBuilder.reverse().toString();
-        char[] chars = string1.toCharArray();
-        boolean[] booleans = new boolean[chars.length];
-        for (int j = 0; j < chars.length; j++) {
-            if (chars[j] == 49) {
-                booleans[j] = true;
-            } else {
-                booleans[j] = false;
-            }
-        }
-        return booleans;
-    }
+
 
 
     /**
@@ -87,15 +71,28 @@ public class StirringTankClient {
         //读确认开始生产
         READ_THE_STIRRING_TANK_16(1, 115, 1, 0),
 
-
+        //读仓库无法完成注药量
+        READ_THE_REPOSITORY_01(1, 0, 1, 0),
         //写仓库无法完成注药量
         WRITE_THE_STIRRING_TANK_01(1, 0, 1, 0),
+
+        //读仓库确认可完成注药量
+        READ_THE_REPOSITORY_02(1, 1, 1, 0),
         //写仓库确认可完成注药量
         WRITE_THE_STIRRING_TANK_02(1, 1, 1, 1),
+
+        //读仓库收到请求已经开始注药
+        READ_THE_REPOSITORY_03(1, 2, 1, 0),
         //写仓库收到请求已经开始注药
         WRITE_THE_STIRRING_TANK_03(1, 2, 1, 1),
+
+        //读仓库注入失败
+        READ_THE_REPOSITORY_04(1, 3, 1, 0),
         //写仓库注入失败
         WRITE_THE_STIRRING_TANK_04(1, 3, 1, 0),
+
+        //读仓库注入成功
+        READ_THE_REPOSITORY_05(1, 4, 1, 0),
         //写仓库注入成功
         WRITE_THE_STIRRING_TANK_05(1, 4, 1, 1);
 
@@ -268,7 +265,7 @@ public class StirringTankClient {
      */
     public boolean[] readTank13() {
         Number number = read1(READ_THE_STIRRING_TANK_13.getSlaveId(), READ_THE_STIRRING_TANK_13.getOffset());
-        boolean[] booleans = convertToBooleans(number);
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
         return booleans;
     }
 
@@ -280,7 +277,7 @@ public class StirringTankClient {
      */
     public boolean[] readTank14() {
         Number number = read1(READ_THE_STIRRING_TANK_14.getSlaveId(), READ_THE_STIRRING_TANK_14.getOffset());
-        boolean[] booleans = convertToBooleans(number);
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
         return booleans;
     }
 
@@ -291,7 +288,7 @@ public class StirringTankClient {
      */
     public boolean[] readTank15() {
         Number number = read1(READ_THE_STIRRING_TANK_15.getSlaveId(), READ_THE_STIRRING_TANK_15.getOffset());
-        boolean[] booleans = convertToBooleans(number);
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
         return booleans;
     }
 
@@ -302,57 +299,403 @@ public class StirringTankClient {
      */
     public boolean[] readTank16() {
         Number number = read1(READ_THE_STIRRING_TANK_16.getSlaveId(), READ_THE_STIRRING_TANK_16.getOffset());
-        boolean[] booleans = convertToBooleans(number);
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
         return booleans;
     }
 
 
     /**
-     * 写仓库无法完成注药量
+     * 写仓库无法完成碳酸钠注药量
      *
      * @return
      */
     public Boolean writeTank01() {
-        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), WRITE_THE_STIRRING_TANK_01.getValue1());
+        Number number = read1(READ_THE_REPOSITORY_01.getSlaveId(), READ_THE_REPOSITORY_01.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[0] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), i);
+    }
+
+    /**
+     * 写仓库无法完成丁黄药注药量
+     *
+     * @return
+     */
+    public Boolean writeTank01_1() {
+        Number number = read1(READ_THE_REPOSITORY_01.getSlaveId(), READ_THE_REPOSITORY_01.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[1] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), i);
+    }
+
+    /**
+     * 写仓库无法完成丁铵黑药注药量
+     *
+     * @return
+     */
+    public Boolean writeTank01_2() {
+        Number number = read1(READ_THE_REPOSITORY_01.getSlaveId(), READ_THE_REPOSITORY_01.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[2] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), i);
+    }
+
+    /**
+     * 写仓库无法完成六偏磷酸钠注药量
+     *
+     * @return
+     */
+    public Boolean writeTank01_3() {
+        Number number = read1(READ_THE_REPOSITORY_01.getSlaveId(), READ_THE_REPOSITORY_01.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[3] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), i);
+    }
+
+    /**
+     * 写仓库无法完成硫酸铵注药量
+     *
+     * @return
+     */
+    public Boolean writeTank01_4() {
+        Number number = read1(READ_THE_REPOSITORY_01.getSlaveId(), READ_THE_REPOSITORY_01.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[4] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), i);
+    }
+
+    /**
+     * 写仓库无法完成硫乙黄药注药量
+     *
+     * @return
+     */
+    public Boolean writeTank01_5() {
+        Number number = read1(READ_THE_REPOSITORY_01.getSlaveId(), READ_THE_REPOSITORY_01.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[5] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_01.getSlaveId(), WRITE_THE_STIRRING_TANK_01.getOffset(), i);
     }
 
     /**
-     * 写仓库确认可完成注药
+     * 写仓库确认可完成碳酸钠注药
      *
      * @return
      */
     public Boolean writeTank02() {
-        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), WRITE_THE_STIRRING_TANK_02.getValue1());
+        Number number = read1(READ_THE_REPOSITORY_02.getSlaveId(), READ_THE_REPOSITORY_02.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[0] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), i);
+    }
+
+    /**
+     * 写仓库确认可完成丁黄药注药
+     *
+     * @return
+     */
+    public Boolean writeTank02_1() {
+        Number number = read1(READ_THE_REPOSITORY_02.getSlaveId(), READ_THE_REPOSITORY_02.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[1] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), i);
+    }
+
+    /**
+     * 写仓库确认可完成丁铵黑药注药
+     *
+     * @return
+     */
+    public Boolean writeTank02_2() {
+        Number number = read1(READ_THE_REPOSITORY_02.getSlaveId(), READ_THE_REPOSITORY_02.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[2] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), i);
+    }
+
+    /**
+     * 写仓库确认可完成六偏磷酸钠注药
+     *
+     * @return
+     */
+    public Boolean writeTank02_3() {
+        Number number = read1(READ_THE_REPOSITORY_02.getSlaveId(), READ_THE_REPOSITORY_02.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[3] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), i);
+    }
+
+    /**
+     * 写仓库确认可完成硫酸铵注药
+     *
+     * @return
+     */
+    public Boolean writeTank02_4() {
+        Number number = read1(READ_THE_REPOSITORY_02.getSlaveId(), READ_THE_REPOSITORY_02.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[4] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), i);
+    }
+
+    /**
+     * 写仓库确认可完成乙黄药注药
+     *
+     * @return
+     */
+    public Boolean writeTank02_5() {
+        Number number = read1(READ_THE_REPOSITORY_02.getSlaveId(), READ_THE_REPOSITORY_02.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[5] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_02.getSlaveId(), WRITE_THE_STIRRING_TANK_02.getOffset(), i);
     }
 
     /**
-     * 写仓库收到请求已经开始注药
+     * 写仓库收到请求已经开始碳酸钠注药
      *
      * @return
      */
     public Boolean writeTank03() {
-        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), WRITE_THE_STIRRING_TANK_03.getValue1());
+        Number number = read1(READ_THE_REPOSITORY_03.getSlaveId(), READ_THE_REPOSITORY_03.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[0] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), i);
+    }
+
+    /**
+     * 写仓库收到请求已经开始丁黄药注药
+     *
+     * @return
+     */
+    public Boolean writeTank03_1() {
+        Number number = read1(READ_THE_REPOSITORY_03.getSlaveId(), READ_THE_REPOSITORY_03.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[1] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), i);
+    }
+
+    /**
+     * 写仓库收到请求已经开始丁铵黑药注药
+     *
+     * @return
+     */
+    public Boolean writeTank03_2() {
+        Number number = read1(READ_THE_REPOSITORY_03.getSlaveId(), READ_THE_REPOSITORY_03.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[2] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), i);
+    }
+
+    /**
+     * 写仓库收到请求已经开始六偏磷酸钠注药
+     *
+     * @return
+     */
+    public Boolean writeTank03_3() {
+        Number number = read1(READ_THE_REPOSITORY_03.getSlaveId(), READ_THE_REPOSITORY_03.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[3] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), i);
+    }
+
+    /**
+     * 写仓库收到请求已经开始硫酸铵注药
+     *
+     * @return
+     */
+    public Boolean writeTank03_4() {
+        Number number = read1(READ_THE_REPOSITORY_03.getSlaveId(), READ_THE_REPOSITORY_03.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[4] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), i);
+    }
+
+    /**
+     * 写仓库收到请求已经开始乙黄药注药
+     *
+     * @return
+     */
+    public Boolean writeTank03_5() {
+        Number number = read1(READ_THE_REPOSITORY_03.getSlaveId(), READ_THE_REPOSITORY_03.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[5] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_03.getSlaveId(), WRITE_THE_STIRRING_TANK_03.getOffset(), i);
     }
 
     /**
-     * 写仓库注入失败
+     * 写仓库注入碳酸钠失败
      *
      * @return
      */
     public Boolean writeTank04() {
-        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), WRITE_THE_STIRRING_TANK_04.getValue1());
+        Number number = read1(READ_THE_REPOSITORY_04.getSlaveId(), READ_THE_REPOSITORY_04.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[0] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入丁黄药失败
+     *
+     * @return
+     */
+    public Boolean writeTank04_1() {
+        Number number = read1(READ_THE_REPOSITORY_04.getSlaveId(), READ_THE_REPOSITORY_04.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[1] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入丁铵黑药失败
+     *
+     * @return
+     */
+    public Boolean writeTank04_2() {
+        Number number = read1(READ_THE_REPOSITORY_04.getSlaveId(), READ_THE_REPOSITORY_04.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[2] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入六偏磷酸钠失败
+     *
+     * @return
+     */
+    public Boolean writeTank04_3() {
+        Number number = read1(READ_THE_REPOSITORY_04.getSlaveId(), READ_THE_REPOSITORY_04.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[3] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入硫酸铵失败
+     *
+     * @return
+     */
+    public Boolean writeTank04_4() {
+        Number number = read1(READ_THE_REPOSITORY_04.getSlaveId(), READ_THE_REPOSITORY_04.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[4] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入乙黄药失败
+     *
+     * @return
+     */
+    public Boolean writeTank04_5() {
+        Number number = read1(READ_THE_REPOSITORY_04.getSlaveId(), READ_THE_REPOSITORY_04.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[5] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_04.getSlaveId(), WRITE_THE_STIRRING_TANK_04.getOffset(), i);
     }
 
     /**
-     * 写仓库注入成功
+     * 写仓库注入碳酸钠完
      *
      * @return
      */
     public Boolean writeTank05() {
-        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), WRITE_THE_STIRRING_TANK_05.getValue1());
+        Number number = read1(READ_THE_REPOSITORY_05.getSlaveId(), READ_THE_REPOSITORY_05.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[0] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入丁黄药完成
+     *
+     * @return
+     */
+    public Boolean writeTank05_1() {
+        Number number = read1(READ_THE_REPOSITORY_05.getSlaveId(), READ_THE_REPOSITORY_05.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[1] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入丁铵黑药完成
+     *
+     * @return
+     */
+    public Boolean writeTank05_2() {
+        Number number = read1(READ_THE_REPOSITORY_05.getSlaveId(), READ_THE_REPOSITORY_05.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[2] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入六偏磷酸钠完成
+     *
+     * @return
+     */
+    public Boolean writeTank05_3() {
+        Number number = read1(READ_THE_REPOSITORY_05.getSlaveId(), READ_THE_REPOSITORY_05.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[3] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入硫酸铵完成
+     *
+     * @return
+     */
+    public Boolean writeTank05_4() {
+        Number number = read1(READ_THE_REPOSITORY_05.getSlaveId(), READ_THE_REPOSITORY_05.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[4] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), i);
+    }
+
+    /**
+     * 写仓库注入乙黄药完成
+     *
+     * @return
+     */
+    public Boolean writeTank05_5() {
+        Number number = read1(READ_THE_REPOSITORY_05.getSlaveId(), READ_THE_REPOSITORY_05.getOffset());
+        boolean[] booleans = ConvertUtil.convertToBooleans(number);
+        booleans[5] = true;
+        int i = ConvertUtil.convertToInt(booleans);
+        return write(WRITE_THE_STIRRING_TANK_05.getSlaveId(), WRITE_THE_STIRRING_TANK_05.getOffset(), i);
     }
 
 
+
     /**
      * 读的方法
      *