fix:库区同步定时任务

(cherry picked from commit 618fc6c004)
This commit is contained in:
zzs01@yunemao.com 2024-09-10 19:00:49 +08:00
parent a807b931db
commit bf656fa44e

View File

@ -20,6 +20,9 @@ import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Date;
@ -31,6 +34,9 @@ import java.util.Map;
*/
public class SynWhLocationCMMPTask extends AbstractTask {
private final static Logger log = LoggerFactory.getLogger(SynWhLocationCMMPTask.class);
@Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
//查询CMMP链接
@ -54,24 +60,39 @@ public class SynWhLocationCMMPTask extends AbstractTask {
//先查询是否存在
ArrayList<QFilter> qFilters = new ArrayList<>();
qFilters.add(new QFilter("number", QCP.equals, map1.get("position_code")));
qFilters.add(new QFilter("group.number", QCP.equals, map1.get("position_code")));
qFilters.add(new QFilter("group.yem_belong", QCP.equals, connObj.getString("yem_belong")));
// qFilters.add(new QFilter("group.number", QCP.equals, map1.get("area_code")));
// qFilters.add(new QFilter("group.yem_belong", QCP.equals, connObj.getString("yem_belong")));
qFilters.add(new QFilter("yem_belong", QCP.equals, connObj.getString("yem_belong")));
DynamicObjectCollection whs = QueryServiceHelper.query("yem_whlocation", "id", qFilters.toArray(new QFilter[0]));
if (whs.size() > 0) {
//如果存在
DynamicObject wh = BusinessDataServiceHelper.loadSingle(whs.get(0).getString("id"), "yem_whlocation");
createWL(map1, wh, connObj);
OperationServiceHelper.executeOperate("save", "yem_whlocation", new DynamicObject[]{wh}, OperateOption.create());
DynamicObject[] whs = BusinessDataServiceHelper.load("yem_whlocation", "id, number, group.number, group.yem_belong", qFilters.toArray(new QFilter[0]));
if (whs.length > 0) {
for (DynamicObject wh : whs) {
DynamicObject group = wh.getDynamicObject("group");
group = BusinessDataServiceHelper.loadSingle(group.getPkValue(), group.getDataEntityType().getName());
if (group != null) {
String group_number = group.getString("number");
String group_belong = group.getString("yem_belong");
if (group_number.equals(map1.get("area_code")) && group_belong.equals(connObj.getString("yem_belong"))) {
log.info("已存在库区数据,执行更新:{} {}", map1.get("position_code"), map1.get("position_name"));
//如果存在
wh = BusinessDataServiceHelper.loadSingle(wh.getString("id"), "yem_whlocation");
createWL(map1, wh, connObj);
OperationResult operate = OperationServiceHelper.executeOperate("save", "yem_whlocation", new DynamicObject[]{wh}, OperateOption.create());
String message = operate.getMessage();
log.info(message);
}
}
}
} else {
MainEntityType entityType = EntityMetadataCache.getDataEntityType("yem_whlocation");
DynamicObject wh = new DynamicObject(entityType);
wh.getDataEntityType().getPrimaryKey().setValueFast(wh, ID.genLongId());
log.info("新建库区数据:{} {}", map1.get("position_code"), map1.get("position_name"));
createWL(map1, wh, connObj);
if (wh.get("group") == null) {
continue;
}
OperationResult operationResult = OperationServiceHelper.executeOperate("save", "yem_whlocation", new DynamicObject[]{wh}, OperateOption.create());
log.info(operationResult.getMessage());
if (!operationResult.isSuccess()) {
for (IOperateInfo errInfo1 : operationResult.getAllErrorOrValidateInfo()) {
String detailMessage1 = errInfo1.getMessage();