소스 검색

仓库app手持接口新增以及调试蟹盖
2022年8月15日13时3032分

纪新园 2 년 전
부모
커밋
361dd72ee8
15개의 변경된 파일721개의 추가작업 그리고 63개의 파일을 삭제
  1. 141 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitoringAlarms/MonitoringAlarmsController.java
  2. 115 49
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/appHold/AppWarehouseController.java
  3. 19 0
      ruoyi-common/src/main/java/com/ruoyi/common/constant/MonitoringAlarms.java
  4. 6 0
      ruoyi-warehouse/pom.xml
  5. 44 0
      ruoyi-warehouse/src/main/java/com/ruoyi/Alarms/AlarmListQ.java
  6. 8 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TGoodsServiceImpl.java
  7. 93 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/vo/AppHoldTWarehouseBillsRVO.java
  8. 6 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java
  9. 3 4
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsElabelMapper.java
  10. 16 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java
  11. 16 3
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehousebillsitemsElabelService.java
  12. 183 1
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java
  13. 28 4
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehousebillsitemsElabelServiceImpl.java
  14. 23 0
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml
  15. 20 2
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsElabelMapper.xml

+ 141 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitoringAlarms/MonitoringAlarmsController.java

@@ -0,0 +1,141 @@
+package com.ruoyi.web.controller.monitoringAlarms;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.constant.MonitoringAlarms;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.JsonUtil;
+import com.ruoyi.common.utils.sign.Md5Utils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+@Api("报警设备相关接口")
+@RestController
+@RequestMapping("/api")
+public class MonitoringAlarmsController {
+
+
+    /**
+     * 获取接口调用凭证
+     */
+    @ApiOperation("获取接口调用凭证")
+    @PostMapping(value = "/getAccessToken")
+    public AjaxResult getAccessToken(@RequestParam(value = "appId") String appId,
+                                     @RequestParam(value = "appSecret") String appSecret) {
+
+        Map<String, Object> rsp = new HashMap<>();
+
+        rsp.put("appId", appId);
+        rsp.put("appSecret", appSecret);
+
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(MonitoringAlarms.API_PREFIX_DEV + MonitoringAlarms.GET_ACCESS_TOKEN)
+                .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                .build();
+
+        System.out.println("请求数据=   " + JsonUtil.toJson(rsp));
+        String s;
+        try {
+            s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+        } catch (IOException e) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("请求反馈异常," + e.getMessage());
+        }
+        System.out.println(s);
+        JSONObject result = JSON.parseObject(s);
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 告警列表查询
+     */
+    @ApiOperation("告警列表查询")
+    @PostMapping(value = "/queryAlarmList")
+    public AjaxResult queryAlarmList(@RequestParam(value = "pageNum") int pageNum,
+                                     @RequestParam(value = "pageSize") int pageSize,
+                                     @RequestParam(value = "token") String token) {
+
+        Calendar.getInstance().getTimeInMillis();
+
+        long time = Calendar.getInstance().getTimeInMillis();
+
+        TreeMap<String, Object> rsp = new TreeMap<>();
+        rsp.put("aiDevList", new String[]{"sn_xxx1", "sn_xxx2"});
+        rsp.put("alarmState", 1);
+        rsp.put("alarmType", 2);
+        rsp.put("devList", new String[]{"sn_C_1", "sn_C_2"});
+        rsp.put("endTime", "1580918600000");
+        rsp.put("keyword", "test");
+        rsp.put("nonce", "786738");
+        rsp.put("pageNum", pageNum);
+        rsp.put("pageSize", pageSize);
+        rsp.put("projectId", 1);
+        rsp.put("r", time);
+        rsp.put("startTime", "1580745600000");
+        rsp.put("token", token);
+        // 签名内容
+        String str = "aiDevList=" + Arrays.toString(new String[]{"sn_xxx1", "sn_xxx2"}) + "&"
+                + "alarmState=" + 1 + "&"
+                + "alarmType=" + 2 + "&"
+                + "alarmState=" + 1 + "&"
+                + "devList=" + Arrays.toString(new String[]{"sn_C_1", "sn_C_2"}) + "&"
+                + "endTime=" + "1580918600000" + "&"
+                + "keyword=" + "test" + "&"
+                + "nonce=" + "786738" + "&"
+                + "pageNum=" + pageNum + "&"
+                + "pageSize=" + pageSize + "&"
+                + "projectId=" + 1 + "&"
+                + "r=" + time + "&"
+                + "startTime=" + "1580918600000" + "&"
+                + "token=" + token;
+
+//        String str = "aiDevList,alarmState,alarmType,alarmState,devList,endTime=1580918600000&,keyword,nonce,pageNum,pageSize,projectId,r,startTime,token";
+
+//        String sign = Md5Utils.hash(JsonUtil.toJson(rsp));
+        String sign = DigestUtils.md5Hex(JsonUtil.toJson(rsp).getBytes());
+
+        rsp.put("sign", sign);
+        System.out.println("请求数据=" + JsonUtil.toJson(rsp));
+
+        System.out.println("签名加密=" + sign);
+
+        /* .addHeader("token",token)
+                .addHeader("sign",sign)
+                .addHeader("r",time+"")
+                .addHeader("nonce","786738")*/
+
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(MonitoringAlarms.API_PREFIX_DEV + MonitoringAlarms.QUERY_ALARM_LIST)
+                .method("post", RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), JsonUtil.toJson(rsp)))
+                .build();
+        String s;
+        try {
+            s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+        } catch (IOException e) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("请求反馈异常," + e.getMessage());
+        }
+        System.out.println(s);
+        JSONObject result = JSON.parseObject(s);
+        return AjaxResult.success(result);
+    }
+
+}

+ 115 - 49
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/appHold/AppWarehouseController.java

@@ -2,15 +2,12 @@ package com.ruoyi.web.controller.warehouse.appHold;
 
 
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.ruoyi.basicData.service.ITCorpsService;
 import com.ruoyi.basicData.service.ITGoodsService;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel;
@@ -18,8 +15,6 @@ import com.ruoyi.warehouseBusiness.domain.vo.AppHoldTWarehouseBillsRVO;
 import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
 import com.ruoyi.warehouseBusiness.service.ITWarehousebillsitemsElabelService;
 import com.ruoyi.warehouseBusiness.service.ITWarehousebillsitemsService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -28,9 +23,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-@Api(value = "app手持相关接口")
 @RestController
-@RequestMapping("/api/appHold/warehouseBills")
+@RequestMapping("/appHold/warehouseBills")
 public class AppWarehouseController extends BaseController {
 
 
@@ -53,64 +47,70 @@ public class AppWarehouseController extends BaseController {
     /**
      * 查询入/出库列表数据
      */
-    @ApiOperation("查询入/出库列表数据")
     @GetMapping("/list")
-    public TableDataInfo inList(@RequestParam(value = "storekeeper") String storekeeper,
-                                @RequestParam(value = "billtype") String billtype,
-                                @RequestParam(value = "pageNum") Integer pageNum,
-                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
+    public TableDataInfo inList(@RequestParam(value = "storekeeper", required = false) String storekeeper,
+                                @RequestParam(value = "billtype") String billtype) {
         //返回数据集
-        List<Map<String, Object>> mapList = new ArrayList<>();
+        List<AppHoldTWarehouseBillsRVO> appHoldTWarehouseBillsRVOList = new ArrayList<>();
         //获取入/出数据集
         TWarehouseBills warehouseBills = new TWarehouseBills();
         warehouseBills.setfBilltype(billtype);
         warehouseBills.setfStorekeeper(storekeeper);
-        PageHelper.startPage(pageNum, pageSize);
+        warehouseBills.setDelFlag("0");
+        warehouseBills.setfBillstatus(2l);
         List<TWarehouseBills> warehouseBillsList = itWarehouseBillsService.selectTWarehousebillsList(warehouseBills);
         //遍历集合  查询明细数据集
         warehouseBillsList.forEach(ware -> {
-            Map<String, Object> map = new HashMap<>();
-            map.put("fId", ware.getfId());
-            map.put("fBillno", ware.getfBillno());
             TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
             tWarehousebillsitems.setfPid(ware.getfId());
+            tWarehousebillsitems.setfBillstatus(10l);
             List<TWarehousebillsitems> tWarehousebillsitemsList = itWarehousebillsitemsService.selectTWarehousebillsitemsList(tWarehousebillsitems);
-            List<AppHoldTWarehouseBillsRVO> appHoldTWarehouseBillsRVOList = new ArrayList<>();
+
             //遍历明细集合 取出所需要数据放到返回类中
             tWarehousebillsitemsList.forEach(ls -> {
                 AppHoldTWarehouseBillsRVO appHoldTWarehouseBillsRVO = new AppHoldTWarehouseBillsRVO();
-                appHoldTWarehouseBillsRVO.setItemId(ls.getfId());
-                appHoldTWarehouseBillsRVO.setFBsdate(ls.getfBsdate());
-                appHoldTWarehouseBillsRVO.setFWarehouseInformation(ls.getfWarehouseInformation());
-                appHoldTWarehouseBillsRVO.setFGrossweight(ls.getfGrossweight());
-                appHoldTWarehouseBillsRVO.setFMblno(ware.getfMblno());
-                appHoldTWarehouseBillsRVO.setFName(itCorpsService.selectCorpsById(ls.getfGoodsid()) == null ? "无" : itCorpsService.selectCorpsById(ls.getfGoodsid()).getfName());
-                appHoldTWarehouseBillsRVO.setFNetweight(ls.getfNetweight());
-                appHoldTWarehouseBillsRVO.setGoodsName(itGoodsService.selectTGoodsById(ls.getfGoodsid()) == null ? "无" : itGoodsService.selectTGoodsById(ls.getfGoodsid()).getfName());
-                appHoldTWarehouseBillsRVO.setFQty(ls.getfQty());
+                appHoldTWarehouseBillsRVO.setItemId(ls.getfId());//明细id
+                appHoldTWarehouseBillsRVO.setFBsdate(ls.getfBsdate());//出入库日期
+                appHoldTWarehouseBillsRVO.setFWarehouseInformation(ls.getfWarehouseInformation());//库区
+                appHoldTWarehouseBillsRVO.setFGrossweight(ls.getfGrossweight());//毛重
+                appHoldTWarehouseBillsRVO.setFMblno(ls.getfMblno());//提单号
+                appHoldTWarehouseBillsRVO.setFCorpid(ware.getfCorpid());//客户id
+                appHoldTWarehouseBillsRVO.setFName(itCorpsService.selectCorpsById(ware.getfGoodsid()) == null ? "无" : itCorpsService.selectCorpsById(ware.getfGoodsid()).getfName());//客户名称
+                appHoldTWarehouseBillsRVO.setFNetweight(ls.getfNetweight());//净重
+                appHoldTWarehouseBillsRVO.setFGoodsid(ls.getfGoodsid());//货物id
+                appHoldTWarehouseBillsRVO.setGoodsName(itGoodsService.selectTGoodsById(ls.getfGoodsid()) == null ? "无" : itGoodsService.selectTGoodsById(ls.getfGoodsid()).getfName());//货物名称
+                appHoldTWarehouseBillsRVO.setFQty(ls.getfQty());//件数
+
+                appHoldTWarehouseBillsRVO.setFId(ls.getfPid());//主id
+                appHoldTWarehouseBillsRVO.setFBillno(ls.getfBillno());//入库编号
+                appHoldTWarehouseBillsRVO.setFOriginalbillno(ls.getfOriginalbillno());//入库明细号
+                appHoldTWarehouseBillsRVO.setFOriginalbilldate(ls.getfOriginalbilldate());//原始入库日期
+                appHoldTWarehouseBillsRVO.setFMarks(ls.getfMarks());//属性详情
+                appHoldTWarehouseBillsRVO.setFBusinessType(ls.getfBusinessType());//属性
                 appHoldTWarehouseBillsRVOList.add(appHoldTWarehouseBillsRVO);
             });
-            map.put("itemList", appHoldTWarehouseBillsRVOList);
-            mapList.add(map);
         });
 
-        return getDataTable(mapList);
+        return getDataTable(appHoldTWarehouseBillsRVOList);
     }
 
     /**
      * 获取入库仓库详细信息
      */
-    @ApiOperation("获取入/出库仓库标签列表数据")
     @GetMapping(value = "/labelList")
     public AjaxResult getLabelList(@RequestParam(value = "fId") Long fId,
-                                   @RequestParam(value = "itemId") Long itemId) {
-        return AjaxResult.success(labelService.selectItemsElabelList(fId, itemId));
+                                   @RequestParam(value = "itemId") Long itemId,
+                                   @RequestParam(value = "fType") int fType) {
+        TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+        tWarehousebillsitemsElabel.setfPid(itemId);
+        tWarehousebillsitemsElabel.setfGPid(fId);
+        tWarehousebillsitemsElabel.setfType(fType);
+        return AjaxResult.success(labelService.selectItemsElabelList(tWarehousebillsitemsElabel));
     }
 
     /**
      * 获取入库仓库详细信息
      */
-    @ApiOperation("获取入/出库仓库详细信息")
     @GetMapping(value = "/details")
     public AjaxResult getInfo(@RequestParam(value = "labelId") Long labelId) {
         Map<String, Object> map = new HashMap<>();
@@ -127,12 +127,24 @@ public class AppWarehouseController extends BaseController {
                 appHoldTWarehouseBillsRVO.setFBsdate(tWarehousebillsitems.getfBsdate());
                 appHoldTWarehouseBillsRVO.setFWarehouseInformation(tWarehousebillsitems.getfWarehouseInformation());
                 appHoldTWarehouseBillsRVO.setFGrossweight(tWarehousebillsitems.getfGrossweight());
-                appHoldTWarehouseBillsRVO.setFMblno(tWarehousebillsitems.getfMblno());
+                appHoldTWarehouseBillsRVO.setFCorpid(tWarehouseBills.getfCorpid());//客户id
                 appHoldTWarehouseBillsRVO.setFName(itCorpsService.selectCorpsById(tWarehousebillsitems.getfGoodsid()) == null ? "无" : itCorpsService.selectCorpsById(tWarehousebillsitems.getfGoodsid()).getfName());
                 appHoldTWarehouseBillsRVO.setFNetweight(tWarehousebillsitems.getfNetweight());
+                appHoldTWarehouseBillsRVO.setFGoodsid(tWarehousebillsitems.getfGoodsid());//货物id
                 appHoldTWarehouseBillsRVO.setGoodsName(itGoodsService.selectTGoodsById(tWarehousebillsitems.getfGoodsid()) == null ? "无" : itGoodsService.selectTGoodsById(tWarehousebillsitems.getfGoodsid()).getfName());
                 appHoldTWarehouseBillsRVO.setFQty(tWarehousebillsitems.getfQty());
+                appHoldTWarehouseBillsRVO.setFBoxno(tWarehousebillsitems.getfBoxno());
+                appHoldTWarehouseBillsRVO.setFOriginalbillno(tWarehousebillsitems.getfBillno());
+                appHoldTWarehouseBillsRVO.setFMblno(tWarehousebillsitems.getfMblno());
+                appHoldTWarehouseBillsRVO.setFId(tWarehousebillsitems.getfPid());//主id
+                appHoldTWarehouseBillsRVO.setFBillno(tWarehousebillsitems.getfBillno());//入库编号
+                appHoldTWarehouseBillsRVO.setFOriginalbillno(tWarehousebillsitems.getfOriginalbillno());//入库明细号
+                appHoldTWarehouseBillsRVO.setFOriginalbilldate(tWarehousebillsitems.getfOriginalbilldate());//原始入库日期
+                appHoldTWarehouseBillsRVO.setFMarks(tWarehousebillsitems.getfMarks());//属性详情
+                appHoldTWarehouseBillsRVO.setFBusinessType(tWarehousebillsitems.getfBusinessType());//属性
+
                 map.put("item", appHoldTWarehouseBillsRVO);
+                map.put("fCustomsdeclartion", tWarehouseBills.getfCustomsdeclartion());
                 map.put("fBillno", tWarehouseBills.getfBillno());
                 return AjaxResult.success(map);
             } else {
@@ -146,29 +158,83 @@ public class AppWarehouseController extends BaseController {
     /**
      * 待入出库 提交
      */
-    @ApiOperation("待入出库 提交")
     @PostMapping(value = "/ischargeCargo")
-    public AjaxResult ischargeCargo(@RequestBody TWarehousebillsitems tWarehousebillsitems) {
-        tWarehousebillsitems.setfBillstatus(30L);
-        return itWarehouseBillsService.waitWarehousingItems(tWarehousebillsitems);
+    public AjaxResult ischargeCargo(@RequestBody List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList) {
+        if (ObjectUtil.isNull(tWarehousebillsitemsElabelList)) {
+            return AjaxResult.error("暂存数据为空");
+        }
+        return labelService.insert(tWarehousebillsitemsElabelList);
     }
 
     /**
      * 确认入库、出库
      */
-    @ApiOperation("确认入库、出库")
-    @PostMapping(value = "/appOperationConfirmation")
-    public AjaxResult warehouseOperationConfirmation(@RequestBody String information) {
-        if (StringUtils.isEmpty(information)) {
+    @GetMapping(value = "/appOperationConfirmation")
+    public AjaxResult warehouseOperationConfirmation(@RequestParam(value = "storekeeper") String storekeeper,
+                                                     @RequestParam(value = "fId") Long fId,
+                                                     @RequestParam(value = "itemId") Long itemId,
+                                                     @RequestParam(value = "fType") int fType,
+                                                     @RequestParam(value = "fContent") String fContent) {
+        if (ObjectUtil.isNull(fId) || ObjectUtil.isNull(itemId) || ObjectUtil.isNull(fType) || ObjectUtil.isNull(fContent)) {
             return AjaxResult.error("未找到查询条件,请确认");
         }
-        JSONObject jsonObject = JSONArray.parseObject(information);
-        String item = jsonObject.get("item").toString();
-        String attachs = jsonObject.get("attachs").toString();
-        if (StringUtils.isEmpty(item) || "{}".equals(item)) {
-            return AjaxResult.error("未找到明细信息,请确认");
+        return itWarehouseBillsService.warehouseOperationConfirmationHold(fId, itemId, fType, storekeeper, fContent);
+    }
+
+
+    /**
+     * 标签查询
+     */
+    @GetMapping(value = "/labelSelectList")
+    public TableDataInfo labelSelectList(@RequestParam(value = "labelCode", required = false) String labelCode,
+                                         @RequestParam(value = "pageNum") Integer pageNum,
+                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<Map<String, Object>> list = labelService.labelSelectList(labelCode);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 出库标签判断
+     */
+    @GetMapping(value = "/outIsLabel")
+    public AjaxResult outIsLabel(@RequestParam(value = "fCorpid") Long fCorpid,
+                                 @RequestParam(value = "fGoodsid") Long fGoodsid,
+                                 @RequestParam(value = "fBusinessType") Long fBusinessType,
+                                 @RequestParam(value = "fMblno") String fMblno,
+                                 @RequestParam(value = "fContent") String fContent,
+                                 @RequestParam(value = "fMarks") String fMarks,
+                                 @RequestParam(value = "fOriginalbilldate") String fOriginalbilldate) {
+        if (ObjectUtil.isNull(fMblno) || ObjectUtil.isNull(fOriginalbilldate) || ObjectUtil.isNull(fContent) || ObjectUtil.isNull(fCorpid) || ObjectUtil.isNull(fGoodsid) || ObjectUtil.isNull(fBusinessType) || ObjectUtil.isNull(fMarks)) {
+            return AjaxResult.error("数据不能为空");
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("fCorpid", fCorpid);
+        map.put("fGoodsid", fGoodsid);
+        map.put("fBusinessType", fBusinessType);
+        map.put("fMblno", fMblno);
+        map.put("fMarks", fMarks);
+        map.put("fOriginalbilldate", fOriginalbilldate);
+        Map<String, Object> wareMap = itWarehouseBillsService.selectWareIdAndItemId(map);
+        if (ObjectUtil.isNotNull(wareMap)) {
+            String[] arrs = fContent.split(",");
+            for (String arr : arrs) {
+                TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+                tWarehousebillsitemsElabel.setfPid((long) wareMap.get("itemId"));
+                tWarehousebillsitemsElabel.setfGPid((long) wareMap.get("fId"));
+                tWarehousebillsitemsElabel.setfType(1);
+                tWarehousebillsitemsElabel.setfStatus(0);
+                tWarehousebillsitemsElabel.setfContent(arr);
+                List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = labelService.selectItemsElabelList(tWarehousebillsitemsElabel);
+                if (ObjectUtil.isNotNull(tWarehousebillsitemsElabelList)) {
+                    return AjaxResult.error("标签号:" + fContent + "不在改单号里,请重新录入");
+                }
+            }
+        } else {
+            return AjaxResult.error("未找到入库信息");
         }
-        return itWarehouseBillsService.warehouseOperationConfirmation(item, attachs);
+        return AjaxResult.success();
     }
 
 }

+ 19 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/MonitoringAlarms.java

@@ -0,0 +1,19 @@
+package com.ruoyi.common.constant;
+
+public class MonitoringAlarms {
+
+    //本地测试
+    public static final String  API_PREFIX_TEST = "http://192.168.150.1";
+
+    //正式环境
+    public static final String  API_PREFIX_DEV = "https://aim.360os.com";
+
+    //获取接口调用凭证
+    public static final String  GET_ACCESS_TOKEN = "/user-mgr/user/getAccessToken";
+
+    //告警列表查询
+    public static final String  QUERY_ALARM_LIST = "/openapi/alarm/queryAlarmList";
+
+
+
+}

+ 6 - 0
ruoyi-warehouse/pom.xml

@@ -53,6 +53,12 @@
             <version>2.5</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.5.21</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 44 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/Alarms/AlarmListQ.java

@@ -0,0 +1,44 @@
+package com.ruoyi.Alarms;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AlarmListQ {
+
+    //当前页数
+    private int pageNum;
+
+    //每页个数
+    private int pageSize;
+
+    //开始时间
+    private Long startTime;
+
+    //结束时间
+    private Long endTime;
+
+    //报警类型
+    private int alarmType;
+
+    //处理状态
+    private int alarmState;
+
+    //关键词
+    private String keyword;
+
+    //AI服务器sn号列表
+    private List<String> aiDevList;
+
+    //通道号 Id 列表
+    private List<String> devList;
+
+    //项目 Id
+    private Long projectId;
+
+    //token
+    private String token;
+
+}

+ 8 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TGoodsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.basicData.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.basicData.domain.TGoods;
 import com.ruoyi.basicData.mapper.TGoodsMapper;
 import com.ruoyi.basicData.service.ITGoodsService;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -63,6 +65,9 @@ public class TGoodsServiceImpl implements ITGoodsService {
     @Override
     public int insertTGoods(TGoods tGoods) {
         tGoods.setCreateTime(DateUtils.getNowDate());
+        if (ObjectUtils.isNull(tGoods.getStockWarning())){
+            tGoods.setStockWarning(new BigDecimal(0));
+        }
         return tGoodsMapper.insertTGoods(tGoods);
     }
 
@@ -82,6 +87,9 @@ public class TGoodsServiceImpl implements ITGoodsService {
                 return AjaxResult.error("商品在库存总账有记录不可变更状态");
             }
         }
+        if (ObjectUtils.isNull(tGoods.getStockWarning())){
+            tGoods.setStockWarning(new BigDecimal(0));
+        }
         tGoods.setUpdateTime(DateUtils.getNowDate());
         tGoodsMapper.updateTGoods(tGoods);
         return AjaxResult.success();

+ 93 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/vo/AppHoldTWarehouseBillsRVO.java

@@ -1,6 +1,9 @@
 package com.ruoyi.warehouseBusiness.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -8,51 +11,141 @@ import java.util.Date;
 
 
 @Data
+@ApiModel("用户实体")
 public class AppHoldTWarehouseBillsRVO {
 
     /**
+     * 主id
+     */
+    @ApiModelProperty("主id")
+    @JsonProperty("fId")
+    private Long fId;
+
+    /**
+     * 入库编号
+     */
+    @ApiModelProperty("入库编号")
+    @JsonProperty("fBillno")
+    private String fBillno;
+
+    /**
      * 明细id
      */
+    @ApiModelProperty("明细id")
+    @JsonProperty("itemId")
     private Long itemId;
 
     /**
+     * 入库明细号
+     */
+    @ApiModelProperty("入库明细号")
+    @JsonProperty("fOriginalbillno")
+    private String fOriginalbillno;
+
+    /**
      * 提单号
      */
+    @ApiModelProperty("提单号")
+    @JsonProperty("fMblno")
     private String fMblno;
 
     /**
      * 客户名称
      */
+    @ApiModelProperty("客户名称")
+    @JsonProperty("fName")
     private String fName;
 
     /**
+     * 客户id
+     */
+    @ApiModelProperty("客户id")
+    @JsonProperty("fCorpid")
+    private Long fCorpid;
+
+    /**
      * 入库日期
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("入库日期")
+    @JsonProperty("fOriginalbilldate")
+    private Date fOriginalbilldate;
+
+    /**
+     * 出库日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("出库日期")
+    @JsonProperty("fBsdate")
     private Date fBsdate;
 
     /**
      * 货物名称
      */
+    @ApiModelProperty("货物名称")
+    @JsonProperty("goodsName")
     private String goodsName;
 
     /**
      * 库区
      */
+    @ApiModelProperty("库区")
+    @JsonProperty("fWarehouseInformation")
     private String fWarehouseInformation;
 
     /**
      * 件数
      */
+    @ApiModelProperty("件数")
+    @JsonProperty("fQty")
     private Long fQty;
 
     /**
      * 净重
      */
+    @ApiModelProperty("净重")
+    @JsonProperty("fNetweight")
     private BigDecimal fNetweight;
 
     /**
      * 毛重
      */
+    @ApiModelProperty("毛重")
+    @JsonProperty("fGrossweight")
     private BigDecimal fGrossweight;
+
+    /**
+     * 箱号
+     */
+    @ApiModelProperty("箱号")
+    @JsonProperty("fBoxno")
+    private String fBoxno;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    @JsonProperty("fGoodsid")
+    private Long fGoodsid;
+
+    /**
+     * 属性详情
+     */
+    @ApiModelProperty("属性详情")
+    @JsonProperty("fMarks")
+    private String fMarks;
+
+    /**
+     * 属性
+     */
+    @ApiModelProperty("属性")
+    @JsonProperty("fBusiness")
+    private Long fBusiness;
+
+    /**
+     * 属性值
+     */
+    @ApiModelProperty("属性值")
+    @JsonProperty("fBusinessType")
+    private Long fBusinessType;
 }

+ 6 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java

@@ -330,4 +330,10 @@ public interface TWarehouseBillsMapper extends BaseMapper<TWarehouseBills> {
      */
     public List<CorpAnalysis> getInactiveCorpList(@Param("beginTime") String beginTime, @Param("endTime") String endTime);
 
+    /**
+     * app手持查看是否再库
+     * @param map
+     * @return
+     */
+    Map<String, Object> selectWareIdAndItemId(Map<String, Object> map);
 }

+ 3 - 4
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsElabelMapper.java

@@ -76,10 +76,9 @@ public interface TWarehousebillsitemsElabelMapper {
     List<TWarehousebillsitemsElabel> selectByStockId(Long stockId);
 
     /**
-     * app手持通过出入库主表id与明细从表id查询标签数据
-     * @param fId  出入库主表id
-     * @param itemId   明细从表id
+     * 通过标签号查询列表(app手持)
+     * @param labelCode
      * @return
      */
-    List<TWarehousebillsitemsElabel> selectItemsElabelList(@Param(value = "fId") Long fId, @Param(value = "itemId")Long itemId);
+    List<Map<String,Object>> labelSelectList(@Param(value = "labelCode") String labelCode);
 }

+ 16 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -899,4 +899,20 @@ public interface ITWarehouseBillsService {
      * @return  结果
      */
     AjaxResult stockWarning(String tWarehousebillsitems);
+
+    /**
+     * app手持确认入库、出库
+     * @param fId  主表id
+     * @param itemId  明细id
+     * @param fType  出入库类型
+     * @return
+     */
+    public AjaxResult warehouseOperationConfirmationHold(Long fId,Long itemId,int fType,String storekeeper,String fContent);
+
+    /**
+     * app手持查看是否再库
+     * @param map
+     * @return
+     */
+    Map<String, Object> selectWareIdAndItemId(Map<String, Object> map);
 }

+ 16 - 3
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehousebillsitemsElabelService.java

@@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ITWarehousebillsitemsElabelService {
     /**
@@ -25,11 +26,23 @@ public interface ITWarehousebillsitemsElabelService {
 
     /**
      * app手持通过出入库主表id与明细从表id查询标签数据
-     * @param fId  出入库主表id
-     * @param itemId   明细从表id
      * @return
      */
-    List<TWarehousebillsitemsElabel> selectItemsElabelList(Long fId,Long itemId);
+    List<TWarehousebillsitemsElabel> selectItemsElabelList(TWarehousebillsitemsElabel tWarehousebillsitemsElabel);
 
     TWarehousebillsitemsElabel selectByfId(Long labelId);
+
+    /**
+     * 通过标签号查询列表(app手持)
+     * @param labelCode
+     * @return
+     */
+    List<Map<String,Object>> labelSelectList(String labelCode);
+
+    /**
+     * 修改标签状态
+     * @param tWarehousebillsitemsElabel
+     * @return
+     */
+    int updateLabel(TWarehousebillsitemsElabel tWarehousebillsitemsElabel);
 }

+ 183 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -432,7 +432,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
     /**
      * app手持获取主表详情
-     * @param fId  id
+     *
+     * @param fId id
      * @return
      */
     @Override
@@ -9698,6 +9699,187 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return AjaxResult.success();
     }
 
+
+    /**
+     * app手持确认入库、出库
+     *
+     * @param fId    主表id
+     * @param itemId 明细id
+     * @param fType  出入库类型
+     * @return
+     */
+    @Override
+    public AjaxResult warehouseOperationConfirmationHold(Long fId, Long itemId, int fType, String storekeeper,String fContent) {
+
+        if (StringUtils.isNull(itemId) || StringUtils.isNull(fId)) {
+            return AjaxResult.error("未找到仓库明细id,或未找到上级id,请确认");
+        }
+        // 查询主表
+        TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
+        if (StringUtils.isNull(warehouseBills.getfBsdate())) {
+            return AjaxResult.error("库存明细请检查日期,操作终止");
+        }
+        if (StringUtils.isNull(warehouseBills.getfCorpid())) {
+            return AjaxResult.error("库存明细请检查客户信息,操作终止");
+        }
+        warehouseBills.setUpdateTime(new Date());
+        warehouseBills.setUpdateBy(storekeeper);
+        Long timestamp = DateUtils.getTimestamp(new Date());
+        warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
+        // 查询最新明细表
+        TWarehousebillsitems warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(itemId);
+        String billsType = warehousebillsitems.getfBilltype();
+        if ("SJRK".equals(billsType) && "0".equals(warehouseBills.getfChargetype()) && warehousebillsitems.getBsdate() != null) {
+            boolean fchargedate = this.getFchargedate(warehousebillsitems.getfPid(), warehousebillsitems.getBsdate());
+            if (!fchargedate) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
+            }
+        }
+        Date time = new Date();
+        if (StringUtils.isNotEmpty(warehouseBills.getfChargetype()) && "0".equals(warehouseBills.getfChargetype())) {
+            time = tWarehousebillsitemsMapper.selecMinBsDateByFPid(fId);
+        } else if (StringUtils.isNotEmpty(warehouseBills.getfChargetype()) && "1".equals(warehouseBills.getfChargetype())) {
+            if (warehousebillsitems.getfBsdate() != null) {
+                time = warehousebillsitems.getfBsdate();
+                warehousebillsitems.setfBsdate(warehousebillsitems.getfBsdate());
+            }
+        }
+        warehousebillsitems.setfChargedate(time);//仓储费计算日期
+
+        SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("entry.printing");
+        if (StringUtils.isNull(sysConfig)) {
+            throw new BaseException("系统参数异常");
+        }
+        String configValue = sysConfig.getConfigValue();
+        if ("0".equals(configValue) && warehousebillsitems.getfBillstatus() != 30L) {
+            return AjaxResult.error("请确认是该明细数据是否存在,或该明细数据状态异常");
+        }
+
+        TGoods goods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
+        if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(warehousebillsitems.getfCntrno())) {
+            return AjaxResult.error("仓库明细第未找到箱号");
+        }
+        if ("SJRK".equals(billsType)) {
+            warehousebillsitems.setfOriginalbilldate(warehousebillsitems.getfBsdate());//入库时间
+            warehousebillsitems.setfChargedate(warehousebillsitems.getfBsdate());
+
+            // 查询库容量  是否可入库
+            int m = calculation(warehouseBills.getfWarehouseid(), warehousebillsitems.getfGrossweight());
+            if (m == 0) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
+            }
+            TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
+            if (StringUtils.isNotNull(tWhgenle)) {
+                int i = updateTWhgenlegData(warehousebillsitems, tWhgenle.getfId(), billsType);
+                if (i <= 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("更新库存总账失败");
+                }
+            } else {
+                instalTWhgenleg(warehouseBills, warehousebillsitems);
+            }
+            warehousebillsitems.setfIsInventory(0L);
+            warehousebillsitems.setfBillstatus(40L);
+            warehousebillsitems.setUpdateTime(new Date());
+            warehousebillsitems.setUpdateBy(storekeeper);
+            tWarehousebillsitemsMapper.updateTWarehousebillsitems(warehousebillsitems);
+            // 添加状态log
+            insertTWarehousebillsLog(warehousebillsitems, 40L);
+        } else if ("SJCK".equals(billsType)) {
+            // 查询总账是否存在
+            TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
+            if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("库存明细库存为空");
+            }
+            //  库存 <  出库件数
+            if (tWhgenle.getfQtyblc() < warehousebillsitems.getfQty()) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("库存明细库存不足");
+            }
+            // 判断出库明细审批参数是否开启
+            if (CKDetailsSwitch()) {
+                TWarehousebillsitems tbs = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(itemId);
+                if (tbs.getfItemstatus() != 6L) {
+                    if (tbs.getfItemstatus() == 2L) { // 判断仓库明细从表数据明细审批状态是否为 2 ,则是未发起明细请核过
+                        throw new WarehouseException("通过明细请核后重试");
+                    } else if (tbs.getfItemstatus() == 3L) {
+                        throw new WarehouseException("明细请核被驳回,请重新提交请核");
+                    } else if (tbs.getfItemstatus() == 4L || warehousebillsitems.getfItemstatus() == 5L) {
+                        throw new WarehouseException("明细审批中~");
+                    }
+                    // 将被更改的明细请核状态装进传递
+                    warehousebillsitems.setfItemstatus(tbs.getfItemstatus());
+                }
+            }
+
+            // 跟新库存总账
+            updateTWhgenlegData(warehousebillsitems, tWhgenle.getfId(), billsType);
+            warehousebillsitems.setfBillstatus(40L);
+            warehousebillsitems.setUpdateTime(new Date());
+            warehousebillsitems.setfPid(fId);
+            if (warehousebillsitems.getBsdate() == null) {
+                warehousebillsitems.setfBsdate(warehouseBills.getfBsdate());
+            }
+            warehousebillsitems.setfBillno(warehouseBills.getfBillno());
+            warehousebillsitems.setUpdateBy(storekeeper);
+            tWarehousebillsitemsMapper.updateTWarehousebillsitems(warehousebillsitems);
+            // 添加状态log
+            insertTWarehousebillsLog(warehousebillsitems, 40L);
+        }
+
+        List<String> urlList = tEnclosureMapper.selectUrlByPId(fId);
+        tEnclosureMapper.deleteByFPid(fId);
+
+        // 根据父级 id,以及父级单据类型,获取从表数据
+        List<TWarehousebillsitems> tb = tWarehousebillsitemsMapper.selectTWarehousebillsitemsListByPidToType(fId, warehouseBills.getfBilltype());
+        List<Long> status = new ArrayList<>();
+        for (TWarehousebillsitems tbs : tb) {
+            if (tbs.getfBillstatus() != 40L) { // 是否都不在完成状态
+                status.add(tbs.getfBillstatus());
+            }
+        }
+        int bStatus = status.size(); // 还有多少未完成状态,为 0 则全部已完成
+        if (bStatus != 0) { // 还有未计划未完成
+            // 更改状态为 某某中
+            warehouseBills.setfItemsStatus(3L);
+        } else { // 全部完成
+            //最后更新仓库主表
+            warehouseBills.setfItemsStatus(4L);
+        }
+        TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(fId);
+        warehouseBills.setfQty(itemInFo.getfQty());
+        warehouseBills.setfNetweight(itemInFo.getfNetweight());
+        warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
+        tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
+
+        String[] arrs = fContent.split(",");
+        for (String arr : arrs) {
+            TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+            if (fType == 1){
+                tWarehousebillsitemsElabel.setfStatus(0);
+            }else{
+                tWarehousebillsitemsElabel.setfStatus(1);
+            }
+            tWarehousebillsitemsElabel.setfType(fType);
+            tWarehousebillsitemsElabel.setfContent(arr);
+            warehousebillsitemsElabelMapper.updateStatus(tWarehousebillsitemsElabel);
+        }
+        return AjaxResult.success();
+    }
+
+    /**
+     * app手持查看是否再库
+     * @param map
+     * @return
+     */
+    @Override
+    public Map<String, Object> selectWareIdAndItemId(Map<String, Object> map) {
+        return tWarehouseBillsMapper.selectWareIdAndItemId(map);
+    }
+
     /**
      * RSA 签名
      *

+ 28 - 4
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehousebillsitemsElabelServiceImpl.java

@@ -9,7 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service
@@ -32,8 +34,10 @@ public class TWarehousebillsitemsElabelServiceImpl implements ITWarehousebillsit
 
         elabelList.forEach(elabel -> {
             if (ObjectUtil.isNull(elabel.getfId())) {
+                elabel.setCreateTime(new Date());
                 elabelMapper.insert(elabel);
             } else {
+                elabel.setUpdateTime(new Date());
                 elabelMapper.updateById(elabel);
             }
         });
@@ -57,17 +61,37 @@ public class TWarehousebillsitemsElabelServiceImpl implements ITWarehousebillsit
 
     /**
      * app手持通过出入库主表id与明细从表id查询标签数据
-     * @param fId  出入库主表id
-     * @param itemId   明细从表id
      * @return
      */
     @Override
-    public List<TWarehousebillsitemsElabel> selectItemsElabelList(Long fId, Long itemId) {
-        return elabelMapper.selectItemsElabelList(fId,itemId);
+    public List<TWarehousebillsitemsElabel> selectItemsElabelList(TWarehousebillsitemsElabel tWarehousebillsitemsElabel) {
+        return elabelMapper.selectList(tWarehousebillsitemsElabel);
     }
 
     @Override
     public TWarehousebillsitemsElabel selectByfId(Long labelId) {
         return elabelMapper.selectById(labelId);
     }
+
+
+    /**
+     * 通过标签号查询列表(app手持)
+     * @param labelCode
+     * @return
+     */
+    @Override
+    public List<Map<String,Object>> labelSelectList(String labelCode) {
+        return elabelMapper.labelSelectList(labelCode);
+    }
+
+    /**
+     * 修改标签状态
+     * @param tWarehousebillsitemsElabel
+     * @return
+     */
+    @Override
+    public int updateLabel(TWarehousebillsitemsElabel tWarehousebillsitemsElabel) {
+        elabelMapper.updateStatus(tWarehousebillsitemsElabel);
+        return 1;
+    }
 }

+ 23 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -3504,4 +3504,27 @@
         </where>
         order by fBsdate desc
     </select>
+
+
+    <select id="selectWareIdAndItemId" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT
+            ware.f_id AS fId,
+            item.f_id AS itemId
+        FROM
+            t_warehousebills ware
+                LEFT JOIN t_warehousebillsitems item ON ware.f_id = item.f_pid
+                LEFT JOIN t_corps tc ON ware.f_corpid = tc.f_id
+                LEFT JOIN t_goods tg ON item.f_goodsid = tg.f_id
+                LEFT JOIN sys_dict_data sdd ON item.f_business_type = sdd.dict_value
+        WHERE
+            ware.del_flag = 0
+          AND item.del_flag = 0
+          AND sdd.dict_type = 'storage_type'
+        <if test="fCorpid != null ">AND ware.f_corpid = #{fCorpid}</if>
+        <if test="fMblno != null and fMblno != ''">AND item.f_mblno = #{fMblno}</if>
+        <if test="fOriginalbilldate != null ">AND item.f_originalbilldate = date_format(#{fOriginalbilldate},'%Y-%m-%d')</if>
+        <if test="fGoodsid != null ">AND item.f_goodsid = #{fGoodsid}</if>
+        <if test="fMarks != null and fMarks != ''">AND item.f_marks = #{fMarks}</if>
+        <if test="fBusinessType != null ">AND item.f_business_type = #{fBusinessType}</if>
+    </select>
 </mapper>

+ 20 - 2
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsElabelMapper.xml

@@ -157,10 +157,28 @@
                  left join t_whgenleg t3 on t3.f_originalbillno = t2.f_billno
         where t3.f_id = #{stockId}
     </select>
-    <select id="selectItemsElabelList" resultMap="ElabelResult">
+    <select id="selectItemsElabelList" parameterType="com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel" resultMap="ElabelResult">
         <include refid="selectElabel"/>
         <where>
-            f_g_pid = #{fId} and f_pid = #{itemId}
+            f_g_pid = #{fId} and f_pid = #{itemId} and f_type = #{fType}
         </where>
     </select>
+
+    <select id="labelSelectList" resultType="Map">
+        SELECT
+            tc.f_name AS fname,
+            tw.f_mblno AS fMblno,
+            te.f_id AS fId,
+            te.f_type AS fType
+        FROM
+            t_warehousebillsitems_elabel te
+                LEFT JOIN t_warehousebillsitems tw ON te.f_pid = tw.f_id
+                LEFT JOIN t_warehousebills ware ON tw.f_pid = ware.f_id
+                LEFT JOIN t_corps tc ON ware.f_corpid = tc.f_id
+        WHERE
+            tw.del_flag = '0'
+          AND ware.del_flag = '0'
+          AND te.f_status = 0
+        <if test="fContent != null and fContent != ''">and te.f_content like concat('%', #{fContent}, '%')</if>
+    </select>
 </mapper>