Parcourir la source

feat:数据采集任务新增

Tzz il y a 2 semaines
Parent
commit
122e1dc1a5

+ 142 - 0
nckd-hr/src/main/java/nckd/yanye/hr/report/gzbb/SjcjmbTask.java

@@ -0,0 +1,142 @@
+package nckd.yanye.hr.report.gzbb;
+
+import com.alibaba.fastjson.JSONObject;
+import kd.bos.context.RequestContext;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.exception.KDException;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.login.utils.DateUtils;
+import kd.bos.orm.query.QFilter;
+import kd.bos.schedule.executor.AbstractTask;
+import kd.bos.servicehelper.AttachmentServiceHelper;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.QueryServiceHelper;
+import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+
+import java.time.LocalDate;
+import java.time.YearMonth;
+import java.time.ZoneId;
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class SjcjmbTask extends AbstractTask {
+    private static final Log logger = LogFactory.getLog(SjcjmbTask.class);
+
+    public SjcjmbTask() {
+    }
+
+    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
+        logger.info("拉取数据采集模板进行下发");
+        this.pushSjcjTask(map);
+        logger.info("拉取数据采集模板进行下发结束");
+    }
+
+    public void pushSjcjTask(Map<String, Object> map) {
+        List<QFilter> qfilter = new ArrayList();
+        qfilter.add(new QFilter("billstatus", "=", "C"));
+        if (map.get("org") != null) {
+            String orgObject = map.get("org").toString();
+            JSONObject orgJson = JSONObject.parseObject(orgObject);
+            if (orgJson.get("id") != null) {
+                qfilter.add(new QFilter("org.id", "=", orgJson.get("id")));
+            }
+        }
+
+        QFilter[] filtersQuery = (QFilter[])((QFilter[])qfilter.toArray(new QFilter[qfilter.size()]));
+        DynamicObjectCollection sjcjmbObjectCollection = QueryServiceHelper.query("nckd_sjcjmb", "id,billno,nckd_billname", filtersQuery);
+        Iterator var5 = sjcjmbObjectCollection.iterator();
+
+        while(var5.hasNext()) {
+            DynamicObject sjcjmbObject = (DynamicObject)var5.next();
+            Long mbId = sjcjmbObject.getLong("id");
+            this.pushSjcjTaskSave(mbId);
+        }
+
+    }
+
+    public void pushSjcjTaskSave(Long mbId) {
+        DynamicObject sjcjmbObject = BusinessDataServiceHelper.loadSingle(mbId, "nckd_sjcjmb");
+        Date nowDate = new Date();
+        String yearMonth = DateUtils.formatDate(nowDate, new Object[]{"yyyy-MM"});
+        String billname = sjcjmbObject.getString("nckd_billname");
+        String newBeginDateStr = "";
+        Date newBeginDate = null;
+        if (sjcjmbObject.getDate("nckd_tbkssj") != null) {
+            String beginDayStr = DateUtils.formatDate(sjcjmbObject.getDate("nckd_tbkssj"), new Object[]{"dd"});
+            newBeginDateStr = yearMonth + "-" + beginDayStr;
+            newBeginDate = DateUtils.parseDate(newBeginDateStr);
+        }
+
+        LocalDate localDate = nowDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        YearMonth nextMonth = YearMonth.from(localDate).plusMonths(1L);
+        LocalDate lastDay = nextMonth.atEndOfMonth();
+        Date resultDate = Date.from(lastDay.atStartOfDay(ZoneId.systemDefault()).toInstant());
+        String nckd_remark = sjcjmbObject.getString("nckd_remark");
+        DynamicObject sjcjrwObject = BusinessDataServiceHelper.newDynamicObject("nckd_sjcjrw");
+        String sjcjrwBillNo = CodeRuleServiceHelper.getNumber("nckd_sjcjrw", sjcjrwObject, (String)null);
+        sjcjrwObject.set("billno", sjcjrwBillNo);
+        sjcjrwObject.set("billstatus", "C");
+        sjcjrwObject.set("org", sjcjmbObject.get("org.id"));
+        sjcjrwObject.set("nckd_billname", billname);
+        sjcjrwObject.set("nckd_ssny", nowDate);
+        sjcjrwObject.set("nckd_tbkssj", newBeginDate);
+        sjcjrwObject.set("nckd_tbjzsj", resultDate);
+        sjcjrwObject.set("nckd_remark", nckd_remark);
+        sjcjrwObject.set("nckd_sjzt", "2");
+        sjcjrwObject.set("nckd_sfjtxf", "1");
+        DynamicObjectCollection sjcjDynamicObjects = (DynamicObjectCollection)sjcjrwObject.get("nckd_sjcjrw_entry");
+        DynamicObjectCollection sjcjmbDynamicObjects = (DynamicObjectCollection)sjcjmbObject.get("nckd_sjcjrw_entry");
+        Iterator var17 = sjcjmbDynamicObjects.iterator();
+
+        DynamicObject sjcjmbDynamicObject;
+        DynamicObject dynamicObjectEntry;
+        while(var17.hasNext()) {
+            sjcjmbDynamicObject = (DynamicObject)var17.next();
+            DynamicObject dynamicObjectNew = sjcjDynamicObjects.addNew();
+            dynamicObjectNew.set("nckd_tbxzzz", sjcjmbDynamicObject.get("nckd_tbxzzz.id"));
+            dynamicObjectNew.set("nckd_dxbbmc", sjcjmbDynamicObject.get("nckd_dxbbmc"));
+            DynamicObjectCollection nckd_tztbry = sjcjmbDynamicObject.getDynamicObjectCollection("nckd_tztbry");
+            DynamicObjectCollection userColl = dynamicObjectNew.getDynamicObjectCollection("nckd_tztbry");
+            Iterator var22 = nckd_tztbry.iterator();
+
+            while(var22.hasNext()) {
+                DynamicObject user = (DynamicObject)var22.next();
+                dynamicObjectEntry = user.getDynamicObject("fbasedataId");
+                DynamicObject newUser = new DynamicObject(userColl.getDynamicObjectType());
+                newUser.set("fbasedataId", dynamicObjectEntry);
+                userColl.add(newUser);
+            }
+
+            dynamicObjectNew.set("nckd_tztbry", userColl);
+            dynamicObjectNew.set("nckd_sfscrw", sjcjmbDynamicObject.get("nckd_sfscrw"));
+        }
+
+        Object[] result = SaveServiceHelper.save(new DynamicObject[]{sjcjrwObject});
+        sjcjmbDynamicObject = (DynamicObject)result[0];
+        Long sjcjTaskId = sjcjmbDynamicObject.getLong("id");
+        List<Map<String, Object>> attachmentDatas = AttachmentServiceHelper.getAttachments("nckd_sjcjmb", mbId, "attachmentpanel");
+        if (attachmentDatas.size() > 0) {
+            AttachFileUtils.copyFileFromAToB("nckd_sjcjmb", mbId, "attachmentpanel", "nckd_sjcjrw", sjcjTaskId, "attachmentpanel");
+        }
+
+        DynamicObject nowTaskObject = BusinessDataServiceHelper.loadSingle(sjcjTaskId, "nckd_sjcjrw");
+        DynamicObjectCollection dynamicObjectCollection = nowTaskObject.getDynamicObjectCollection("nckd_sjcjrw_entry");
+
+        List receivers;
+        for(Iterator var30 = dynamicObjectCollection.iterator(); var30.hasNext(); PushSjcjDataUtils.savePushBillMsg(nowTaskObject, receivers)) {
+            dynamicObjectEntry = (DynamicObject)var30.next();
+            String nckd_sfscrw = dynamicObjectEntry.getString("nckd_sfscrw");
+            DynamicObjectCollection nckd_tztbry = dynamicObjectEntry.getDynamicObjectCollection("nckd_tztbry");
+            receivers = (List)nckd_tztbry.stream().map((tztbryObject) -> {
+                return tztbryObject.getLong("fbasedataid.id");
+            }).collect(Collectors.toList());
+            if ("1".equals(nckd_sfscrw)) {
+                PushSjcjDataUtils.savePushBillData(nowTaskObject, dynamicObjectEntry);
+            }
+        }
+
+    }
+}

+ 2 - 2
nckd-pur/src/main/java/nckd/pur/scp/plugin/operate/SaloutStockOpPlugin.java

@@ -26,7 +26,7 @@ public class SaloutStockOpPlugin extends AbstractOperationServicePlugIn{
         String operationKey = e.getOperationKey();
         String operationKey = e.getOperationKey();
         if("submit".equals(operationKey)){
         if("submit".equals(operationKey)){
             for (DynamicObject bill : entities) {
             for (DynamicObject bill : entities) {
-                String wuliu = bill.getString("nckd_textfield");
+                String wuliu = bill.getString("nckd_tracking");
                 String date = DateUtil.date2str(bill.getDate("delidate"),DateUtil.DATE_FORMAT_YYYY_MM_DD);
                 String date = DateUtil.date2str(bill.getDate("delidate"),DateUtil.DATE_FORMAT_YYYY_MM_DD);
                 String content = String.format("已发货,预计到货日期:%s,物流单号:%s",date,wuliu);
                 String content = String.format("已发货,预计到货日期:%s,物流单号:%s",date,wuliu);
                 //反写至 采购订单 采购申请单
                 //反写至 采购订单 采购申请单
@@ -45,7 +45,7 @@ public class SaloutStockOpPlugin extends AbstractOperationServicePlugIn{
                         purApply.set("nckd_tracking",content);
                         purApply.set("nckd_tracking",content);
                     }
                     }
                 }
                 }
-                purOrder.set("·",content);
+                purOrder.set("nckd_tracking",content);
                 if(purApply!=null) {
                 if(purApply!=null) {
                     SaveServiceHelper.save(new DynamicObject[]{purOrder});
                     SaveServiceHelper.save(new DynamicObject[]{purOrder});
                     SaveServiceHelper.save(new DynamicObject[]{purApply});
                     SaveServiceHelper.save(new DynamicObject[]{purApply});