|
@@ -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);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+}
|