Selaa lähdekoodia

增加定时器

liyg 2 vuotta sitten
vanhempi
commit
3d6eece807

+ 6 - 0
src/main/java/com/steerinfo/dil/mapper/DilNoticeMapper.java

@@ -166,4 +166,10 @@ public interface DilNoticeMapper extends IBaseMapper<DilNotice, BigDecimal> {
     int readAll(Map<String, Object> map);
 
     List<Map<String, Object>>  getNoticeUser(Map<String, Object> mapValue);
+
+    //查询有问题的采购订单
+    List<Map<String, Object>> findErrorOrder();
+
+    //新增通知(对单个用户)
+    int insertIntoNoticeUserToOne(Map<String,Object> map);
 }

+ 26 - 4
src/main/java/com/steerinfo/dil/service/impl/DilNoticeServiceImpl.java

@@ -4,13 +4,11 @@ import com.steerinfo.dil.mapper.DilNoticeMapper;
 import com.steerinfo.dil.model.DilNotice;
 import com.steerinfo.dil.service.IDilNoticeService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
+import java.util.*;
 import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
 
 /**
  * DilNotice服务实现:
@@ -335,4 +333,28 @@ public class DilNoticeServiceImpl  implements IDilNoticeService {
     public List<Map<String, Object>> getNoticeUser(Map<String, Object> mapValue) {
         return dilNoticeMapper.getNoticeUser(mapValue);
     }
+
+    /**
+     * 查询国内矿采购订单是否符合标准,若不符合则发送给自动化部负责人:(UserId:1012690778083954688)
+     */
+    @Scheduled(fixedRate = 1000*60*60)
+    public void checkPurchaseOrder(){
+        List<Map<String,Object>> purchaseOrders=dilNoticeMapper.findErrorOrder();
+        for(Map<String,Object> item:purchaseOrders){
+            //插入通知表
+            DilNotice notice=new DilNotice();
+            notice.setNoticeId(dilNoticeMapper.selectNoticeId());
+            notice.setNoticeTitle(item.get("purchaseOrderNo")+"订单异常");
+            notice.setNoticeContent("国内矿订单'"+item.get("purchaseOrderNo")+"'缺少发站!");
+            notice.setInsertTime(new Date());
+            notice.setInsertUsername("system");
+            notice.setDeleted(new BigDecimal(0));
+            notice.setInsertUpdateRemark(""+item.get("purchaseOrderNo"));
+            dilNoticeMapper.insertSelective(notice);
+            //插入通知子表
+            item.put("noticeId",notice.getNoticeId());
+            item.put("userId","1012690778083954688");
+            dilNoticeMapper.insertIntoNoticeUserToOne(item);
+        }
+    }
 }

+ 23 - 0
src/main/resources/com/steerinfo/dil/mapper/DilNoticeMapper.xml

@@ -837,4 +837,27 @@
       ORDER BY DN.INSERT_TIME DESC
     </where>
   </select>
+  <select id="findErrorOrder" resultType="java.util.Map">
+    SELECT APO .PURCHASE_ORDER_NO "purchaseOrderNo",
+           APO .PURCHASE_ORDER_BUYER "purchaseOrderBuyer"
+    FROM AMS_PURCHASE_ORDER  APO
+           LEFT JOIN DIL_BATCH DB ON DB .BATCH_ID = APO .BATCH_ID
+           LEFT JOIN DIL_NOTICE DN ON DN .INSERT_UPDATE_REMARK = APO.PURCHASE_ORDER_NO
+    WHERE
+      APO.DELETED=0
+      AND (DB .RESULT_FOREIGN_SHIP_NAME='烧结' OR DB .RESULT_FOREIGN_SHIP_NAME='泰昕')
+      AND  NVL(DN .DELETED,1) != 0
+    ORDER BY APO .INSERT_TIME DESC
+  </select>
+  <insert id="insertIntoNoticeUserToOne">
+    INSERT INTO DIL_NOTICE_USERS
+      (select DN.NOTICE_ID ,
+              SU.USER_ID,
+              SU.USER_NAME,
+              SU.ORG_CODE,
+              0 "STATUS"
+       from DIL_NOTICE DN ,"SSO".SYS_USER SU
+       WHERE DN.NOTICE_ID=#{noticeId}
+         AND SU.USER_ID=#{userId})
+  </insert>
 </mapper>