rev:修改合格证入库回传;

This commit is contained in:
2024-12-01 21:20:58 +08:00
parent d87fc88fb3
commit 9ae77e7d8d
10 changed files with 232 additions and 54 deletions

View File

@@ -3,6 +3,7 @@ package org.nl.wms.external_system.erp;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.javaparser.utils.Log; import com.github.javaparser.utils.Log;
@@ -205,12 +206,70 @@ public class SyncErpService {
//执行回传 //执行回传
String formType = from.getString("formid"); String formType = from.getString("formid");
try { try {
// Model
Map<String, Object> modelMap = new LinkedHashMap<>();
Map<String, Object> fBillTypeMap = new LinkedHashMap<>();
fBillTypeMap.put("FNUMBER", "SCRKD01_SYS");
modelMap.put("FBillType", fBillTypeMap);
modelMap.put("FDate", "2024-11-28");
Map<String, Object> fStockOrgIdMap = new LinkedHashMap<>();
fStockOrgIdMap.put("FNumber", "102");
modelMap.put("FStockOrgId", fStockOrgIdMap);
Map<String, Object> fPrdOrgIdMap = new LinkedHashMap<>();
fPrdOrgIdMap.put("FNumber", "102");
modelMap.put("FPrdOrgId", fPrdOrgIdMap);
Map<String, Object> fOwnerId0Map = new LinkedHashMap<>();
fOwnerId0Map.put("FNumber", "102");
modelMap.put("FOwnerId0", fOwnerId0Map);
List<Map<String, Object>> fEntityList = new ArrayList<>();
Map<String, Object> fEntityMap = new LinkedHashMap<>();
// FEntity
fEntityMap.put("FIsNew", "false");
fEntityMap.put("FMoBillNo", "MO102241101889");
fEntityMap.put("FMoId", "173959");
fEntityMap.put("FMoEntryId", "174486");
fEntityMap.put("FSrcEntryId", 216902);
Map<String, Object> fMaterialIdMap = new LinkedHashMap<>();
fMaterialIdMap.put("FNumber", "05.01.D700.00225");
fEntityMap.put("FMaterialId", fMaterialIdMap);
Map<String, Object> fLotMap = new LinkedHashMap<>();
fLotMap.put("FNumber", "MO102241101889");
fEntityMap.put("FLot", fLotMap);
Map<String, Object> fUnitIDMap = new LinkedHashMap<>();
fUnitIDMap.put("FNumber", "MX055");
fEntityMap.put("FUnitID", fUnitIDMap);
Map<String, Object> fWorkShopId1Map = new LinkedHashMap<>();
fWorkShopId1Map.put("FNumber", "03.09");
fEntityMap.put("FWorkShopId1", fWorkShopId1Map);
fEntityMap.put("FMustQty", "140");
fEntityMap.put("FRealQty", "140");
fEntityMap.put("FInStockType", "1");
fEntityMap.put("FOwnerTypeId", "BD_OwnerOrg");
Map<String, Object> fOwnerIdMap = new LinkedHashMap<>();
fOwnerIdMap.put("FNumber", "102");
fEntityMap.put("FOwnerId", fOwnerIdMap);
Map<String, Object> fStockStatusIdMap = new LinkedHashMap<>();
fStockStatusIdMap.put("FNumber", "10000");
fEntityMap.put("FStockStatusId", fStockStatusIdMap);
Map<String, Object> fStockIdMap = new LinkedHashMap<>();
fStockIdMap.put("FNumber", "02");
fEntityMap.put("FStockId", fStockIdMap);
fEntityMap.put("FKeeperTypeId", "BD_KeeperOrg");
Map<String, Object> fKeeperIdMap = new LinkedHashMap<>();
fKeeperIdMap.put("FNumber", "102");
fEntityMap.put("FKeeperId", fKeeperIdMap);
fEntityList.add(fEntityMap);
modelMap.put("FEntity", fEntityList);
Map<String, Object> rootMap = new LinkedHashMap<>();
rootMap.put("Model", modelMap);
String jsonString = JSON.toJSONString(rootMap, SerializerFeature.PrettyFormat);
//要回传的json数据 //要回传的json数据
JSONObject formData = from.getJSONObject("data"); JSONObject formData = from.getJSONObject("data");
IdentifyInfo identifyInfo = new IdentifyInfo(); IdentifyInfo identifyInfo = new IdentifyInfo();
BeanUtils.copyProperties(erpSec, identifyInfo); BeanUtils.copyProperties(erpSec, identifyInfo);
K3CloudApi cloudApi = new K3CloudApi(identifyInfo); K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
String results = cloudApi.save(formType, formData.toJSONString()); //String results = cloudApi.save(formType, formData.toJSONString());
String results = cloudApi.save(formType,jsonString);
result.put("results", results); result.put("results", results);
} catch (Exception ex) { } catch (Exception ex) {
Log.error(ex.getMessage()); Log.error(ex.getMessage());

View File

@@ -70,7 +70,7 @@ public class MappingHandler extends TypeHandler<JSONObject, JSONObject> {
JSONObject form_param = form_struc.getForm_param(); JSONObject form_param = form_struc.getForm_param();
if (form_param!=null){ if (form_param!=null){
Map<String, String> formDataSpelMap = new LinkedHashMap<>(); Map<String, String> formDataSpelMap = new LinkedHashMap<>();
JSONObject form_data = new JSONObject(); JSONObject form_data = new JSONObject(new LinkedHashMap<>());
for (String item : form_param.keySet()) { for (String item : form_param.keySet()) {
Object struc = form_param.get(item); Object struc = form_param.get(item);
if (formDataMapping!=null){ if (formDataMapping!=null){

View File

@@ -1,6 +1,9 @@
package org.nl.wms.flow_manage.flow.service.classprocessimpl; package org.nl.wms.flow_manage.flow.service.classprocessimpl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.javaparser.utils.Log; import com.github.javaparser.utils.Log;
import com.kingdee.bos.webapi.entity.IdentifyInfo; import com.kingdee.bos.webapi.entity.IdentifyInfo;
import com.kingdee.bos.webapi.sdk.K3CloudApi; import com.kingdee.bos.webapi.sdk.K3CloudApi;
@@ -13,6 +16,11 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/* /*
* @author ZZQ * @author ZZQ
* @Date 2024/5/6 14:34 * @Date 2024/5/6 14:34
@@ -56,4 +64,128 @@ public class SyncReceiptProcessHandler implements ClassProcess {
} }
return from; return from;
} }
public JSONObject process1(JSONObject from, JSONObject param) {
//执行回传单
String formType = from.getString("form_type");
try {
if (!formType.contains("RECEIPT")) {
throw new BadRequestException("回传失败:单据类型不是回传类型单据");
}
//要回传的json数据
JSONObject formData = from.getJSONObject("form_data");
String formid = formData.getString("formid");
if (StringUtils.isEmpty(formid)) {
throw new BadRequestException("回传失败:回传数据form_data中数据格式不是formid,data类型");
}
List<Map<String, Object>> fEntityList = new ArrayList<>();
Map<String, Object> fPrdOrgIdMap = new LinkedHashMap<>();
Map<String, Object> fStockOrgIdMap = new LinkedHashMap<>();
Map<String, Object> fOwnerId0Map = new LinkedHashMap<>();
Map<String, Object> modelMap = new LinkedHashMap<>();
Map<String, Object> fBillTypeMap = new LinkedHashMap<>();
Map<String, Object> modelMap1 = new LinkedHashMap<>();
JSONObject modelData = formData.getJSONObject("Model");
JSONObject fBillType = modelData.getJSONObject("FBillType");
fBillTypeMap.put("FNUMBER", fBillType.getString("FNUMBER"));
modelMap.put("FDate", modelData.getString("FDate"));
JSONObject fStockOrgId = modelData.getJSONObject("FStockOrgId");
fStockOrgIdMap.put("FNumber", fStockOrgId.getString("FNumber"));
modelMap.put("FStockOrgId", fStockOrgIdMap);
JSONObject fPrdOrgId = modelData.getJSONObject("FPrdOrgId");
fPrdOrgIdMap.put("FNumber", fPrdOrgId.getString("FNumber"));
modelMap.put("FPrdOrgId", fPrdOrgIdMap);
JSONObject fOwnerId0 = modelData.getJSONObject("FOwnerId0");
fOwnerId0Map.put("FNumber", fOwnerId0.getString("FNumber"));
modelMap.put("FOwnerId0", fOwnerId0Map);
JSONArray fEntityArray = modelData.getJSONArray("FEntity");
for (int i = 0; i < fEntityArray.size(); i++) {
JSONObject entity = fEntityArray.getJSONObject(i);
Map<String, Object> entityMap = new LinkedHashMap<>();
entityMap.put("FIsNew", entity.getString("FIsNew"));
entityMap.put("FMoBillNo", entity.getString("FMoBillNo"));
entityMap.put("FMoId", entity.getString("FMoId"));
entityMap.put("FMoEntryId", entity.getString("FMoEntryId"));
entityMap.put("FSrcEntryId", entity.getString("FSrcEntryId"));
entityMap.put("FSrcEntryId", "216397");
// FMaterialId
JSONObject fMaterialId = entity.getJSONObject("FMaterialId");
Map<String, Object> fMaterialIdMap = new LinkedHashMap<>();
fMaterialIdMap.put("FNumber", fMaterialId.getString("FNumber"));
entityMap.put("FMaterialId", fMaterialIdMap);
// FLot
JSONObject fLot = entity.getJSONObject("FLot");
Map<String, Object> fLotMap = new LinkedHashMap<>();
fLotMap.put("FNumber", fLot.getString("FNumber"));
entityMap.put("FLot", fLotMap);
// FUnitID
JSONObject fUnitID = entity.getJSONObject("FUnitID");
Map<String, Object> fUnitIDMap = new LinkedHashMap<>();
fUnitIDMap.put("FNumber", fUnitID.getString("FNumber"));
entityMap.put("FUnitID", fUnitIDMap);
// FWorkShopId1
JSONObject fWorkShopId1 = entity.getJSONObject("FWorkShopId1");
Map<String, Object> fWorkShopId1Map = new LinkedHashMap<>();
fWorkShopId1Map.put("FNumber", fWorkShopId1.getString("FNumber"));
entityMap.put("FWorkShopId1", fWorkShopId1Map);
entityMap.put("FMustQty", entity.getString("FMustQty"));
entityMap.put("FRealQty", entity.getString("FRealQty"));
entityMap.put("FInStockType", entity.getString("FInStockType"));
entityMap.put("FOwnerTypeId", entity.getString("FOwnerTypeId"));
// FOwnerId
JSONObject fOwnerId = entity.getJSONObject("FOwnerId");
Map<String, Object> fOwnerIdMap = new LinkedHashMap<>();
fOwnerIdMap.put("FNumber", fOwnerId.getString("FNumber"));
entityMap.put("FOwnerId", fOwnerIdMap);
// FStockStatusId
JSONObject fStockStatusId = entity.getJSONObject("FStockStatusId");
Map<String, Object> fStockStatusIdMap = new LinkedHashMap<>();
fStockStatusIdMap.put("FNumber", fStockStatusId.getString("FNumber"));
fStockStatusIdMap.put("FNumber", "10000");
entityMap.put("FStockStatusId", fStockStatusIdMap);
// FStockId
JSONObject fStockId = entity.getJSONObject("FStockId");
Map<String, Object> fStockIdMap = new LinkedHashMap<>();
fStockIdMap.put("FNumber", fStockId.getString("FNumber"));
entityMap.put("FStockId", fStockIdMap);
entityMap.put("FKeeperTypeId", entity.getString("FKeeperTypeId"));
// FKeeperId
JSONObject fKeeperId = entity.getJSONObject("FKeeperId");
Map<String, Object> fKeeperIdMap = new LinkedHashMap<>();
fKeeperIdMap.put("FNumber", fKeeperId.getString("FNumber"));
entityMap.put("FKeeperId", fKeeperIdMap);
fEntityList.add(entityMap);
}
modelMap.put("FEntity", fEntityList);
modelMap1.put("Model",modelMap);
String jsonString = JSON.toJSONString(modelMap1, SerializerFeature.PrettyFormat);
IdentifyInfo identifyInfo = new IdentifyInfo();
BeanUtils.copyProperties(erpSec, identifyInfo);
K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
String results = cloudApi.save("PRD_INSTOCK", jsonString);
Integer sd=0;
} catch (Exception ex) {
Log.error(ex.getMessage());
}
return from;
}
} }

View File

@@ -271,7 +271,8 @@ public class PdaIOService {
result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString());
result.setOwnerId_Id(dFormJson.getString("InStockOwnerId")); result.setOwnerId_Id(dFormJson.getString("InStockOwnerId"));
result.setStockStatusId("10000"); result.setStockStatusId("10000");
result.setStockId(dFormJson.getString("stockId")); // result.setStockId(dFormJson.getString("stockId"));
result.setStockId("04.01");
result.setKeeperId((dFormJson.getString("StockOrgId"))); result.setKeeperId((dFormJson.getString("StockOrgId")));
result.setKeeperTypeId("BD_KeeperOrg"); result.setKeeperTypeId("BD_KeeperOrg");
} }

View File

@@ -1,14 +1,15 @@
package org.nl.wms.pm_manage.form_data.service.dao.mapper; package org.nl.wms.pm_manage.form_data.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update; import org.apache.ibatis.annotations.Update;
import org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData; import org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData;
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery;
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto; import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
@@ -24,15 +25,18 @@ public interface PmFormDataMapper extends BaseMapper<PmFormData> {
List<PmFormDataDto> queryTree(@Param("query")FormDataQuery query); List<PmFormDataDto> queryTree(@Param("query")FormDataQuery query);
List<PmFormDataDto> queryTree2(@Param("query")FormDataQuery query); List<PmFormDataDto> queryTree2(@Param("query") FormDataQuery query);
List<PmFormDataDto> selectChilds(List<String> parents); List<PmFormDataDto> selectChilds(List<String> parents);
@Update("${sql}") @Update("${sql}")
void dynamicSql(@Param("sql")String sql); void dynamicSql(@Param("sql") String sql);
ReceiveBillData queryOrderStockId(@Param("code")String code,@Param("seq")String seq); ReceiveBillData queryOrderStockId(@Param("code") String code, @Param("seq") String seq);
ReceiveBillData queryReceiveBill(@Param("bar_code")String bar_code); ReceiveBillData queryReceiveBill(@Param("bar_code") String bar_code);
Set<String> existFormDataList();
} }

View File

@@ -191,4 +191,9 @@
JOIN pm_form_data p ON d.parent_id = p.id JOIN pm_form_data p ON d.parent_id = p.id
WHERE d.bar_code= #{bar_code} WHERE d.bar_code= #{bar_code}
</select> </select>
<select id="existFormDataList" resultType="java.lang.String">
SELECT ID
FROM pm_form_data
WHERE DATE(create_time) = CURDATE()
</select>
</mapper> </mapper>

View File

@@ -81,12 +81,12 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
*/ */
@Override @Override
public List<PmFormData> syncAnalyse(JSONArray mappingJson, String formType,Boolean dtlSplit,String sourceString) { public List<PmFormData> syncAnalyse(JSONArray mappingJson, String formType,Boolean dtlSplit,String sourceString) {
List<PmFormData> result = new ArrayList<>();
try { try {
BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type",formType)); BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type",formType));
if (one == null) { if (one == null) {
throw new BadRequestException("当前表单无配置信息" + formType); throw new BadRequestException("当前表单无配置信息" + formType);
} }
List<PmFormData> result = new ArrayList<>();
//直接取 //直接取
JSONObject sourceData = JSONObject.parseObject(sourceString); JSONObject sourceData = JSONObject.parseObject(sourceString);
// if (StringUtils.isNotEmpty(convertJson)){ // if (StringUtils.isNotEmpty(convertJson)){
@@ -140,7 +140,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
return result; return result;
} catch (Exception ex) { } catch (Exception ex) {
log.error("ERP单据解析异常" + ex.getMessage()); log.error("ERP单据解析异常" + ex.getMessage());
throw new BadRequestException(ex.getMessage()); return result;
} }
} }

View File

@@ -27,6 +27,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@@ -104,7 +105,7 @@ public class SyncFormMappingController {
if (analyseData == null){ if (analyseData == null){
throw new BadRequestException("解析数据不能为空"); throw new BadRequestException("解析数据不能为空");
} }
JSONArray jsonArray = JSONArray.parseArray(form.getString("mapping_json")); JSONArray jsonArray = form.getJSONArray("mapping_json");
boolean dtlSplit =Boolean.parseBoolean(form.getString("mapping_json")); boolean dtlSplit =Boolean.parseBoolean(form.getString("mapping_json"));
List<PmFormData> pmFormDatas = formDataService.syncAnalyse(jsonArray,form.getString("form_type"),dtlSplit,(String) analyseData); List<PmFormData> pmFormDatas = formDataService.syncAnalyse(jsonArray,form.getString("form_type"),dtlSplit,(String) analyseData);
if (needSave!=null && (Boolean)needSave){ if (needSave!=null && (Boolean)needSave){

View File

@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kingdee.bos.webapi.entity.*; import com.kingdee.bos.webapi.entity.*;
import com.kingdee.bos.webapi.sdk.K3CloudApi; import com.kingdee.bos.webapi.sdk.K3CloudApi;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -17,6 +16,7 @@ import org.nl.wms.external_system.erp.dto.ErpQuery;
import org.nl.wms.external_system.erp.dto.ErpSec; import org.nl.wms.external_system.erp.dto.ErpSec;
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper;
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping; import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl; import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
import org.slf4j.MDC; import org.slf4j.MDC;
@@ -25,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
@@ -49,6 +48,10 @@ public class SyncErpBillsScheduleService {
@Autowired @Autowired
private IPmFormDataService formDataService; private IPmFormDataService formDataService;
@Autowired
private PmFormDataMapper pmFormDataMapper;
public void run() { public void run() {
try { try {
MDC.put("requestMethod", "TaskScheduleService#run"); MDC.put("requestMethod", "TaskScheduleService#run");
@@ -80,7 +83,7 @@ public class SyncErpBillsScheduleService {
K3CloudApi cloudApi = new K3CloudApi(identifyInfo); K3CloudApi cloudApi = new K3CloudApi(identifyInfo);
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
//String filterString = "FCreateDate >= '" + "2024-11-01" + " 00:00:00' and FCreateDate <= '" + today + " 23:59:59'"; //String filterString = "FCreateDate >= '" + "2024-11-01" + " 00:00:00' and FCreateDate <= '" + today + " 23:59:59'";
String filterString = "FCreateDate >= '2024-11-22 00:00:00' and FCreateDate <= '2024-11-22 23:59:59'"; String filterString = "FCreateDate >= '2024-11-20 00:00:00' and FCreateDate <= '2024-11-23 23:59:59'";
ErpQuery query = new ErpQuery(); ErpQuery query = new ErpQuery();
query.setFilterString(filterString); query.setFilterString(filterString);
query.setFormId(formType); query.setFormId(formType);
@@ -117,22 +120,23 @@ public class SyncErpBillsScheduleService {
if (!CollectionUtils.isEmpty(error)) { if (!CollectionUtils.isEmpty(error)) {
log.error("ERP单据同步同步失败:{}", error); log.error("ERP单据同步同步失败:{}", error);
} }
//外部同步过来的需要插入数据库的数据
List<PmFormData> pmFormDataAll = new ArrayList<>(); List<PmFormData> pmFormDataAll = new ArrayList<>();
for (Object r : result) { for (Object r : result) {
log.info(JSON.toJSONString(r)); log.info(JSON.toJSONString(r));
JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson); JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson);
pmFormDataAll.addAll(formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r))); List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
if (ObjectUtils.isNotEmpty(formDataList)) {
pmFormDataAll.addAll(formDataList);
}
} }
//今天已同步单 //数据库已存在的数
List<PmFormData> existFormDataList = formDataService.list( Set<String> existFormDataList = pmFormDataMapper.existFormDataList();
new LambdaQueryWrapper<PmFormData>() List<PmFormData> newFormDataList = pmFormDataAll.stream()
.ge(PmFormData::getCreate_time, DateUtil.format(new Date(), "yyyy-MM-dd") + " 00:00:00") .filter(data -> !existFormDataList.contains(data.getId()))
.le(PmFormData::getCreate_time, DateUtil.format(new Date(), "yyyy-MM-dd") + " 23:59:59") .collect(Collectors.toList());
); if (!newFormDataList.isEmpty()) {
Set<String> formDataIds = existFormDataList.stream().map(PmFormData::getId).collect(Collectors.toSet()); formDataService.saveBatch(newFormDataList);
List<PmFormData> insertBills = pmFormDataAll.stream().filter(bill -> !formDataIds.contains(bill.getId())).collect(Collectors.toList());
if (ObjectUtils.isNotEmpty(insertBills)) {
formDataService.saveBatch(insertBills);
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
@@ -145,34 +149,6 @@ public class SyncErpBillsScheduleService {
} }
} }
private void updateBills(List<PmFormData> OutInBillDetails, List<PmFormData> existingIds) {
// 过滤出需要插入的新单据,并根据来源设置 ID
// List<PmFormData> updateBills = OutInBillDetails.stream().filter(r -> r.getUpdate_time() != null).collect(Collectors.toList());
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(OutInBillDetails)) {
//比较insertBills与existingIds的修改时间进行按需更新
for (PmFormData entity : OutInBillDetails) {
PmFormData existing = existingIds.stream().filter(e -> {
boolean isUpdate = false;
try {
if (e.getId().equals(entity.getId())) {
if (e.getUnit_name() == null || org.nl.common.utils.DateUtil.getDate(entity.getUpdate_time()).after(org.nl.common.utils.DateUtil.getDate(e.getUpdate_time()))) {
isUpdate = true;
}
}
} catch (ParseException ex) {
throw new RuntimeException(ex);
}
return isUpdate;
}).findFirst().orElse(null);
if (existing != null) {
PmFormData updateEntity = new PmFormData();
//todo 补充需要修改的字段
updateEntity.setForm_data(entity.getForm_data());
formDataService.update(updateEntity, new QueryWrapper<PmFormData>().eq("id", entity.getId()));
}
}
}
}
} }

View File

@@ -6,7 +6,7 @@ spring:
freemarker: freemarker:
check-template-location: false check-template-location: false
profiles: profiles:
active: prod active: dev
jackson: jackson:
time-zone: GMT+8 time-zone: GMT+8
data: data: