rev:修改合格证入库回传;
This commit is contained in:
@@ -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());
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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(
|
//数据库已存在的数据
|
||||||
new LambdaQueryWrapper<PmFormData>()
|
Set<String> existFormDataList = pmFormDataMapper.existFormDataList();
|
||||||
.ge(PmFormData::getCreate_time, DateUtil.format(new Date(), "yyyy-MM-dd") + " 00:00:00")
|
List<PmFormData> newFormDataList = pmFormDataAll.stream()
|
||||||
.le(PmFormData::getCreate_time, DateUtil.format(new Date(), "yyyy-MM-dd") + " 23:59:59")
|
.filter(data -> !existFormDataList.contains(data.getId()))
|
||||||
);
|
.collect(Collectors.toList());
|
||||||
Set<String> formDataIds = existFormDataList.stream().map(PmFormData::getId).collect(Collectors.toSet());
|
if (!newFormDataList.isEmpty()) {
|
||||||
List<PmFormData> insertBills = pmFormDataAll.stream().filter(bill -> !formDataIds.contains(bill.getId())).collect(Collectors.toList());
|
formDataService.saveBatch(newFormDataList);
|
||||||
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()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user