浏览代码

在小程序换料接口里 增加了更新商品缺料状态的逻辑

wangyuanbo 2 年之前
父节点
当前提交
44df2d67d6

+ 8 - 46
imcs-bt-be/imcs-authority-server/src/main/java/com/github/zuihou/api/AndroidApi.java

@@ -94,22 +94,12 @@ public class AndroidApi {
     public R<List<EquGoodsDto>> goodsList(@RequestParam(name = "equId", required = true) Long equId) {
         BaseContextHandler.setTenant("0000");
         List<EquGoodsDto> equGoods = productionTenantResourceService.getEquGoods(equId);
-        QueryWrap<EquBarrel> barrelQueryWrap = new QueryWrap<>();
-//        barrelQueryWrap.eq("")
-//        barrelService.list()
         equGoods.forEach((item) ->
                 {
                     QueryWrap<Spe> speQueryWrap = new QueryWrap<>();
                     speQueryWrap.eq("goods_id", item.getGoodsId());
                     List<Spe> list = speService.list(speQueryWrap);
                     item.setSpeList(list);
-//                    判断是否缺料
-
-//                    list.forEach(spe -> {
-//                        QueryWrap<Formula> formulaQueryWrap = new QueryWrap<>();
-//                        formulaQueryWrap.eq("formula_spe_id",spe.getId());
-//                        List<Formula> formulaList = formulaService.list(formulaQueryWrap);
-//                    });
                 }
         );
         return R.success(equGoods);
@@ -458,48 +448,20 @@ public class AndroidApi {
         String equId = req.get("equId");
         String speId = req.get("speId");
 
-//        安卓端超时后取消订单
-        if (orderStatus == "2") {
-            //调用微信支付api,关闭订单
-            System.out.println("安卓超时取消订单,订单号:" + orderId);
-            int i = wxPayService.wxCloseOrder(orderId);
-            if (i == 204) {
-//                订单关闭成功,修改本地订单状态
-                UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
-                updateWrapper.eq("id", orderId).set("order_status", orderStatus);
-                boolean update = orderService.update(updateWrapper);
-                return R.success(update);
-            } else {
-                return R.fail("订单关闭失败,建议等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作");
-            }
-        }
-        //        生产异常,发起退款
-        if (orderStatus == "4") {
-            //调用微信支付api,发起退款
-//            int i = wxPayService.wxCloseOrder(orderId);
-//            if (i == 204) {
-//                订单关闭成功,修改本地订单状态
-//                UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
-//                updateWrapper.eq("id", orderId).set("order_status", orderStatus);
-//                boolean update = orderService.update(updateWrapper);
-//                return R.success(update);
-//            } else {
-//                return R.fail("订单关闭失败,建议等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作");
-//            }
-        }
-
+        UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", orderId).set("order_status", orderStatus);
+        boolean update = orderService.update(updateWrapper);
 
         if (orderStatus == "3") {
-            UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.eq("id", orderId).set("order_status", orderStatus);
-            boolean update = orderService.update(updateWrapper);
 //            生产完成,扣减物料,更新料筒和商品状态
             barrelService.updateBarrel(speId, equId);
             return R.success(update);
         }
-        UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("id", orderId).set("order_status", orderStatus);
-        boolean update = orderService.update(updateWrapper);
+
+        if (orderStatus == "4") {
+            //调用微信支付api,发起退款
+        }
+
 
         return R.success(update);
     }

+ 67 - 16
imcs-bt-be/imcs-authority-server/src/main/java/com/github/zuihou/api/OpsAppApi.java

@@ -11,14 +11,20 @@ import com.github.zuihou.business.barrel.entity.EquBarrel;
 import com.github.zuihou.business.barrel.service.EquBarrelService;
 import com.github.zuihou.business.door.entity.DoorRecord;
 import com.github.zuihou.business.door.service.DoorRecordService;
+import com.github.zuihou.business.formula.entity.Formula;
+import com.github.zuihou.business.formula.service.FormulaService;
 import com.github.zuihou.business.material.entity.Material;
 import com.github.zuihou.business.material.service.MaterialService;
 import com.github.zuihou.business.order.entity.Order;
 import com.github.zuihou.business.order.service.OrderService;
+import com.github.zuihou.business.productionresource.dto.EquGoodsDto;
 import com.github.zuihou.business.productionresource.entity.ProductionResource;
+import com.github.zuihou.business.productionresource.service.EquAndGoodsService;
 import com.github.zuihou.business.productionresource.service.ProductionTenantResourceService;
 import com.github.zuihou.business.record.entity.EquRecord;
 import com.github.zuihou.business.record.service.EquRecordService;
+import com.github.zuihou.business.spe.entity.Spe;
+import com.github.zuihou.business.spe.service.SpeService;
 import com.github.zuihou.business.util.CommonUtil;
 import com.github.zuihou.common.util.DateUtil;
 import com.github.zuihou.common.util.StringUtil;
@@ -55,7 +61,12 @@ public class OpsAppApi {
     private MaterialService materialService;
     @Autowired
     private DoorRecordService doorRecordService;
-
+    @Autowired
+    private EquAndGoodsService equAndGoodsService;
+    @Autowired
+    private FormulaService formulaService;
+    @Autowired
+    private SpeService speService;
 
 
     /**
@@ -71,16 +82,16 @@ public class OpsAppApi {
         LbqWrapper<ProductionResource> queryWrap = Wraps.lbQ();
         ProductionResource productionResource = BeanUtil.toBean(params.getModel(), ProductionResource.class);
         queryWrap.eq(ProductionResource::getStatus, "1").orderByDesc(ProductionResource::getCreateTime);
-        if(StringUtils.isNotEmpty(productionResource.getOnlineStatus())){
+        if (StringUtils.isNotEmpty(productionResource.getOnlineStatus())) {
             List<String> ids = productionTenantResourceService.getEquStatusIds(productionResource.getOnlineStatus());
             queryWrap.in(ProductionResource::getId, ids);
         }
         IPage<ProductionResource> list = productionTenantResourceService.pageList(page, queryWrap);
-        if(null!=list.getRecords() && list.getRecords().size()>0) {
+        if (null != list.getRecords() && list.getRecords().size() > 0) {
             list.getRecords().stream().forEach(item -> {
                 Map map = productionTenantResourceService.getEquRunInfo(item.getId());
-                item.setOnlineStatus(map.containsKey("equStatus")?map.get("equStatus").toString():"0");
-                item.setErrMsg(map.containsKey("errMsg") && map.get("errMsg")!=null ?map.get("errMsg").toString():"");
+                item.setOnlineStatus(map.containsKey("equStatus") ? map.get("equStatus").toString() : "0");
+                item.setErrMsg(map.containsKey("errMsg") && map.get("errMsg") != null ? map.get("errMsg").toString() : "");
             });
         }
         return R.success(list);
@@ -121,12 +132,12 @@ public class OpsAppApi {
         Page<ProductionResource> page = new Page<>(1L, 1);
         IPage<ProductionResource> productionResourceList = productionTenantResourceService.pageList(page, queryWrap);
         ProductionResource productionResource = null;
-        if(productionResourceList.getRecords().size()>0){
+        if (productionResourceList.getRecords().size() > 0) {
             productionResource = productionResourceList.getRecords().get(0);
             Map map = productionTenantResourceService.getEquRunInfo(productionResource.getId());
-            productionResource.setOnlineStatus(map.containsKey("equStatus")?map.get("equStatus").toString():"0");
-            productionResource.setErrMsg(map.containsKey("errMsg") && map.get("errMsg")!=null ?map.get("errMsg").toString():"");
-        }else{
+            productionResource.setOnlineStatus(map.containsKey("equStatus") ? map.get("equStatus").toString() : "0");
+            productionResource.setErrMsg(map.containsKey("errMsg") && map.get("errMsg") != null ? map.get("errMsg").toString() : "");
+        } else {
             productionResource = ProductionResource.builder().build();
         }
         return R.success(productionResource);
@@ -268,9 +279,9 @@ public class OpsAppApi {
         //补充异常设备数据
         List<String> ids = productionTenantResourceService.getEquStatusIds("2");
         List<Long> orgArr = CommonUtil.getOrgIdsArr();
-        if(ids.size()>0 && orgArr.size()>0) {
-            ids = productionTenantResourceService.listByIds(ids).stream().filter(item->CollectionUtil.contains(orgArr,(Long)item.getOrgId())
-            ).map(item->item.getId().toString()).collect(Collectors.toList());
+        if (ids.size() > 0 && orgArr.size() > 0) {
+            ids = productionTenantResourceService.listByIds(ids).stream().filter(item -> CollectionUtil.contains(orgArr, (Long) item.getOrgId())
+            ).map(item -> item.getId().toString()).collect(Collectors.toList());
         }
         map.put("exceptDevice", ids.size());
         map.put("lackDevice", ids.size());
@@ -313,6 +324,49 @@ public class OpsAppApi {
         if (bool) {
             bool = equRecordService.save(equRecord);
         }
+//        根据设备id查询商品
+        List<EquGoodsDto> equGoods = productionTenantResourceService.getEquGoods(equRecord.getEquId());
+
+
+//        根据设备查询料筒信息
+        QueryWrap<EquBarrel> barrelQueryWrap = new QueryWrap<>();
+        barrelQueryWrap.eq("equ_id", equRecord.getEquId());
+        List<EquBarrel> barrelList = equBarrelService.list(barrelQueryWrap);
+
+
+//        遍历商品,查询配方列表
+        equGoods.forEach(equGoodsDto -> {
+            QueryWrap<Spe> speQueryWrap = new QueryWrap<>();
+            speQueryWrap.eq("goods_id", equGoodsDto.getGoodsId());
+            List<Spe> speList = speService.list(speQueryWrap);
+            equGoodsDto.setSpeList(speList);
+//            查询每一个规格的配方列表
+            speList.forEach(spe -> {
+                QueryWrap<Formula> formulaQueryWrap = new QueryWrap<>();
+                formulaQueryWrap.eq("formula_spe_id", spe.getId());
+                List<Formula> formulaList = formulaService.list(formulaQueryWrap);
+                formulaList.forEach(formula -> {
+                    barrelList.forEach(equBarrel -> {
+                        if (formula.getFormulaMtId().equals(equBarrel.getMtrId())) {
+                            if(equBarrel.getMtrResidue().compareTo(formula.getFormulaMtQuantity())==1){
+                                equGoodsDto.setIsStarving("1");
+                            }else{
+                                equGoodsDto.setIsStarving("0");
+                            }
+                        }
+                    });
+                });
+            });
+
+
+        });
+
+
+//        遍历配方
+
+
+//        根据配方中原料用量和料筒余量对比  修改商品是否缺料状态
+
 
         return R.success(bool);
     }
@@ -332,14 +386,11 @@ public class OpsAppApi {
 
 
     @GetMapping("/getEquRunInfo")
-    public R<Map<String, String>> getEquRunInfo(@RequestParam(name = "equId"  ,required = true) Long equId) {
+    public R<Map<String, String>> getEquRunInfo(@RequestParam(name = "equId", required = true) Long equId) {
         BaseContextHandler.setTenant("0000");
         Map<String, String> resultMap = productionTenantResourceService.getEquRunInfo(equId);
         return R.success(resultMap);
     }
 
 
-
-
-
 }