ccjgmwz %!s(int64=3) %!d(string=hai) anos
pai
achega
4aea1ca4ed

+ 6 - 3
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PurchaseOrderServiceImpl.java

@@ -97,7 +97,8 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         priceChangeRecord.setPrice(transactionRecord.getTransactionPrice());
         priceChangeRecord.setPriceType("成交价");
         priceChangeRecordService.insert(priceChangeRecord);
-        geTuiUtils.pushByCid("成交通知", "您的合同已成交,成交价:" + transactionRecord.getTransactionPrice() + "元/吨", purchaseOrder.getCommonId());
+        PurchaseOrder tmp = this.selectById(purchaseOrder.getId());
+        geTuiUtils.pushByCid("成交通知", "您的合同已成交,成交价:" + transactionRecord.getTransactionPrice() + "元/吨", tmp.getCommonId());
         return purchaseOrder.getId();
     }
 
@@ -125,7 +126,8 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         transactionRecord.setTurnover(purchaseOrder.getClosingQuantity());
         transactionRecord.setDealDate(purchaseOrder.getClosePositionDate());
         boolean two = transactionRecordService.insert(transactionRecord);
-        geTuiUtils.pushByCid("平仓通知", "您的合同:" + purchaseOrder.getContractNo() + " 平仓成功", purchaseOrder.getCommonId());
+        PurchaseOrder tmp = this.selectById(purchaseOrder.getId());
+        geTuiUtils.pushByCid("平仓通知", "您的合同:" + purchaseOrder.getContractNo() + " 平仓成功", tmp.getCommonId());
         // 平仓报表
         // 查询计划
         ProcurementPlanInfo procurementPlanInfo = procurementPlanInfoService.selectById(purchaseOrder.getPlanId());
@@ -670,7 +672,8 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         priceChangeRecord.setPrice(purchaseOrder.getUnitPrice());
         priceChangeRecord.setPriceType("审核单价");
         priceChangeRecordService.insert(priceChangeRecord);
-        geTuiUtils.pushByCid("审核通知", "您的合同已审核,审核单价:" + purchaseOrder.getUnitPrice() + "元/吨", purchaseOrder.getCommonId());
+        PurchaseOrder tmp = this.selectById(purchaseOrder);
+        geTuiUtils.pushByCid("审核通知", "您的合同已审核,审核单价:" + purchaseOrder.getUnitPrice() + "元/吨", tmp.getCommonId());
         if (one) {
             return "OK";
         } else {

+ 4 - 2
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/SaleOrderServiceImpl.java

@@ -180,7 +180,8 @@ public class SaleOrderServiceImpl extends ServiceImpl<SaleOrderMapper, SaleOrder
         transactionRecord.setTurnover(saleOrder.getClosingQuantity());
         transactionRecord.setDealDate(saleOrder.getClosePositionDate());
         boolean two = transactionRecordService.insert(transactionRecord);
-        geTuiUtils.pushByCid("平仓通知","您的合同:" + saleOrder.getContractNo() + " 平仓成功",saleOrder.getCommonId());
+        SaleOrder tmp = this.selectById(saleOrder.getId());
+        geTuiUtils.pushByCid("平仓通知","您的合同:" + saleOrder.getContractNo() + " 平仓成功",tmp.getCommonId());
         // 平仓报表
         // 查询计划
         SalePlanInfo salePlanInfo = salePlanInfoService.selectById(saleOrder.getPlanId());
@@ -619,7 +620,8 @@ public class SaleOrderServiceImpl extends ServiceImpl<SaleOrderMapper, SaleOrder
         priceChangeRecord.setPrice(saleOrder.getUnitPrice());
         priceChangeRecord.setPriceType("审核单价");
         priceChangeRecordService.insert(priceChangeRecord);
-        geTuiUtils.pushByCid("审核通知", "您的合同已审核,审核单价:" + saleOrder.getUnitPrice() + "元/吨", saleOrder.getCommonId());
+        SaleOrder tmp = this.selectById(saleOrder.getId());
+        geTuiUtils.pushByCid("审核通知", "您的合同已审核,审核单价:" + saleOrder.getUnitPrice() + "元/吨", tmp.getCommonId());
         boolean one = this.updateById(saleOrder);
         if (one) {
             return "OK";

+ 17 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/TranCarInfoServiceImpl.java

@@ -10,8 +10,10 @@ import com.yh.saas.plugin.yiliangyiyun.exception.*;
 import com.yh.saas.plugin.yiliangyiyun.mapper.TranCarInfoMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -33,11 +35,17 @@ public class TranCarInfoServiceImpl extends ServiceImpl<TranCarInfoMapper, TranC
     @Autowired
     private IWarehouseInOutInfoService warehouseInOutInfoService;
     @Autowired
+    private IWarehouseBaseInfoService warehouseBaseInfoService;
+    @Autowired
+    private ICommonUserService commonUserService;
+    @Autowired
     private IProcurementPlanInfoService procurementPlanInfoService;
     @Autowired
     private IPurchaseReceiptReportService purchaseReceiptReportService;
     @Autowired
     private ISalesDeliveryReportService salesDeliveryReportService;
+    @Autowired
+    private GeTuiUtils geTuiUtils;
 
     /**
      * 添加发车信息
@@ -45,6 +53,7 @@ public class TranCarInfoServiceImpl extends ServiceImpl<TranCarInfoMapper, TranC
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public String addTranCar(TranCarInfo tranCarInfo) throws ServiceException {
         //新增主键id
         tranCarInfo.setId(IdGenerator.generateUUID());
@@ -78,6 +87,14 @@ public class TranCarInfoServiceImpl extends ServiceImpl<TranCarInfoMapper, TranC
         warehouseInOutInfo.setGoodsName(tranCarInfo.getGoodsName());
         warehouseInOutInfo.setStartWeight(tranCarInfo.getLoadNetWeight());
         boolean two = warehouseInOutInfoService.insert(warehouseInOutInfo);
+        List<WarehouseBaseInfo> listTmo = warehouseBaseInfoService.selectList(new EntityWrapper<WarehouseBaseInfo>().eq("warehouse_name",warehouseInOutInfo.getWarehouseName()));
+        if(listTmo.size() > 0){
+            WarehouseBaseInfo warehouseBaseInfo = listTmo.get(0);
+            List<CommonUser> tmp = commonUserService.selectList(new EntityWrapper<CommonUser>().eq("phone",warehouseBaseInfo.getPersonPhone()));
+            if(tmp.size() > 0){
+                geTuiUtils.pushByCid("入库任务", "您有新的入库任务待完成,车牌号:"+warehouseInOutInfo.getCarNo(), tmp.get(0).getId());
+            }
+        }
         boolean one = this.insert(tranCarInfo);
         // 插入操作历史
         String staffName = this.billOperateHisService.getStaffAndName();

+ 5 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseInOutInfoServiceImpl.java

@@ -23,6 +23,7 @@ import com.yh.saas.plugin.yiliangyiyun.service.IWarehouseInOutDetailService;
 import com.yh.saas.plugin.yiliangyiyun.service.IWarehouseInOutInfoService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.yh.saas.plugin.yiliangyiyun.util.CalculationUtil;
+import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -68,7 +69,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
     private INewWorkflowService workflowService;
     @Autowired
     private IContractManagementInfoService contractManagementInfoService;
-
+    @Autowired
+    private GeTuiUtils geTuiUtils;
     /**
      * 待完成页面列表
      *
@@ -428,6 +430,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                     if (tranCarInfo1 != null&& "3".equals(tranCarInfo1.getConfirmFlag())) {
                         purchaseReceiptReport.setCustomerConfirmationStatusFlag("1");
                         purchaseReceiptReport.setCustomerConfirmationStatus("是");
+                        geTuiUtils.pushByCid("卸货提醒", "您的合同车辆:"+warehouseInOutInfo.getCarNo()+"申请卸货,请及时确认", purchaseOrder.getCommonId());
                     } else {
                         purchaseReceiptReport.setCustomerConfirmationStatusFlag("3");
                         purchaseReceiptReport.setCustomerConfirmationStatus("否");
@@ -530,6 +533,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                     if (tranCarInfo1 != null&& "3".equals(tranCarInfo1.getConfirmFlag())) {
                         salesDeliveryReport.setCustomerConfirmationStatusFlag("1");
                         salesDeliveryReport.setCustomerConfirmationStatus("是");
+                        geTuiUtils.pushByCid("发货通知", "您的合同车辆:"+warehouseInOutInfo.getCarNo()+"已发出", saleOrder.getCommonId());
                     } else {
                         salesDeliveryReport.setCustomerConfirmationStatusFlag("3");
                         salesDeliveryReport.setCustomerConfirmationStatus("否");

+ 50 - 2
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/GeTuiUtils.java

@@ -16,12 +16,21 @@ import com.getui.push.v2.sdk.dto.req.message.android.Ups;
 import com.getui.push.v2.sdk.dto.req.message.ios.Alert;
 import com.getui.push.v2.sdk.dto.req.message.ios.Aps;
 import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
+import com.gexin.rp.sdk.base.IPushResult;
+import com.gexin.rp.sdk.base.impl.AppMessage;
+import com.gexin.rp.sdk.base.impl.SingleMessage;
 import com.gexin.rp.sdk.base.impl.Target;
+import com.gexin.rp.sdk.base.payload.APNPayload;
+import com.gexin.rp.sdk.exceptions.RequestException;
+import com.gexin.rp.sdk.http.IGtPush;
+import com.gexin.rp.sdk.template.TransmissionTemplate;
 import com.yh.saas.plugin.yiliangyiyun.entity.CommonUser;
 import com.yh.saas.plugin.yiliangyiyun.mapper.CommonUserMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -108,7 +117,6 @@ public class GeTuiUtils {
             androidDTO.setUps(ups);
             pushChannel.setAndroid(androidDTO);
             pushDTO.setPushChannel(pushChannel);
-
             // PushMessage在线走个推通道才会起作用的消息体
             PushMessage pushMessage = new PushMessage();
             pushMessage.setTransmission(" {title:\""+title+"\",content:\""+content+"\",payload:\"test\"}");
@@ -123,15 +131,55 @@ public class GeTuiUtils {
             ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByCid(pushDTO);
             if (apiResult.isSuccess()) {
                 // success
-                System.out.println(apiResult.getData());
+                System.out.println("个推 通知消息3:"+apiResult.getData());
             } else {
                 // failed
                 System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg());
             }
+            //推送穿透消息
+            IGtPush push = new IGtPush(host, appKey, masterSecret);
+            TransmissionTemplate template = genTransmissionTemplate(content, title);// 设定消息模式为透传
+            SingleMessage msg = new SingleMessage();// 个人推送
+            msg.setOffline(true);
+            msg.setOfflineExpireTime(2 * 1000 * 3600);
+            msg.setData(template);
+            Target target = new Target();// 设定接收人
+            target.setAppId(appId);
+            target.setClientId(cid);
+            try {
+                IPushResult ret = push.pushMessageToSingle(msg, target);
+                System.out.println("个推 通知消息1:"+ret.getResponse().toString());
+            } catch (RequestException e) {
+                String requstId = e.getRequestId();
+                IPushResult ret = push.pushMessageToSingle(msg, target, requstId);
+                System.out.println("个推 通知消息2:"+ret.getResponse().toString());
+            }
         }
         catch (Exception e){
             System.out.println("推送异常:" + e.getMessage());
         }
     }
+    private static TransmissionTemplate genTransmissionTemplate(String content, String title) throws Exception {
+        TransmissionTemplate template = new TransmissionTemplate();
+        template.setAppId(appId);
+        template.setAppkey(appKey);
+        template.setTransmissionContent(content);
+        template.setTransmissionType(2);
+        // ios使用
+        APNPayload apnpayload = new APNPayload();
+        APNPayload.DictionaryAlertMsg alertMsg = new APNPayload.DictionaryAlertMsg();
+//        if (title.length() > 50) {
+//            title = title.substring(0, 50) + "……";
+//        }
+//        alertMsg.setBody(title);// 通知文本消息字符串
+
+        apnpayload.setContentAvailable(1);// 推送直接带有透传数据
+        // apnpayload.setBadge(0);//应用icon上显示的数字
+        apnpayload.setSound("default");// 通知铃声文件名
+//        apnpayload.setAlertMsg(alertMsg);
+        template.setAPNInfo(apnpayload);
+        template.setTransmissionType(2);
+        return template;
+    }
 
 }