add:增加单据手动同步功能
This commit is contained in:
@@ -77,7 +77,7 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
String result = erpServiceUtils.audit(formData).getString("result");
|
||||
res = JSONObject.parseObject(result);
|
||||
} else {
|
||||
String result = cloudApi.save(formid, formData.toJSONString());
|
||||
String result = erpServiceUtils.save(formData).getString("result");
|
||||
res = JSONObject.parseObject(result);
|
||||
}
|
||||
JSONObject responseStatus = res.getJSONObject("Result").getJSONObject("ResponseStatus");
|
||||
@@ -94,7 +94,7 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
updateWrapper.set(PmFormData::getUpdate_time, DateUtil.now());
|
||||
if (isSuccess) {
|
||||
updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成"));
|
||||
updateWrapper.set(PmFormData::getRemark, "回执单创建成功,回传Erp数据为:" + json);
|
||||
updateWrapper.set(PmFormData::getRemark, "回执单创建成功,回传Erp数据为:" + responseStatus.getJSONArray("SuccessEntitys").toJSONString());
|
||||
} else {
|
||||
updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("暂停"));
|
||||
updateWrapper.set(PmFormData::getRemark,"回执单创建失败,原因为:"+errorMessages + ",回传Erp数据为:" + json);
|
||||
@@ -110,7 +110,11 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
return from;
|
||||
}
|
||||
|
||||
private void handleBillEntity(String formType, JSONObject formData) {
|
||||
public void handleBillEntity(String formType, JSONObject formData) {
|
||||
JSONObject model = formData.getJSONObject("Model");
|
||||
if (model == null) {
|
||||
return;
|
||||
}
|
||||
JSONArray fEntityArray = formData.getJSONObject("Model").getJSONArray("FEntity");
|
||||
//判断生产入库的手工录入与MRP生成方式需回传不同的源单信息
|
||||
if ("RECEIPT_PRD".equals(formType)) {
|
||||
|
||||
@@ -83,5 +83,17 @@ public class PmFormDataController {
|
||||
iPmFormDataService.syncFormData("type", formDtl);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping ("/syncFeedBack")
|
||||
@Log("手动同步单据")
|
||||
public ResponseEntity<Object> syncFeedBack(@RequestBody JSONObject fromData) {
|
||||
return new ResponseEntity<>(iPmFormDataService.syncFeedBack(fromData),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ public interface IPmFormDataService extends IService<PmFormData> {
|
||||
|
||||
Integer syncFormData(String type,String dataString);
|
||||
|
||||
|
||||
String syncFeedBack(JSONObject fromData);
|
||||
|
||||
JSONObject mappingParse(JSONArray mappingJson, BmFormStruc one, JSONObject sourceData);
|
||||
|
||||
|
||||
@@ -6,10 +6,13 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.javaparser.utils.Log;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.constant.DictConstantPool;
|
||||
@@ -19,6 +22,7 @@ import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.*;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
import org.nl.wms.flow_manage.flow.service.classprocessimpl.SyncReceiptProcessHandler;
|
||||
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.mapper.PmFormDataMapper;
|
||||
@@ -36,6 +40,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -64,18 +69,30 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
|
||||
@Autowired
|
||||
private IBmFormStrucService formStrucService;
|
||||
@Resource
|
||||
private ErpServiceUtils erpServiceUtils;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ISyncFormMappingService iSyncFormMappingService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private SyncReceiptProcessHandler SyncReceiptProcessHandler;
|
||||
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
IPmFormDataService iPmFormDataService;
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private SyncErpBillsScheduleService syncErpBillsScheduleService;
|
||||
|
||||
|
||||
@Override
|
||||
public Integer syncFormData(String form_type, String dataString) {
|
||||
if (StringUtils.isEmpty(form_type) || StringUtils.isEmpty(dataString)) {
|
||||
@@ -91,6 +108,68 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 手动同步单据
|
||||
*/
|
||||
@Override
|
||||
public String syncFeedBack(JSONObject jsonData) {
|
||||
//执行回传单
|
||||
PmFormData pmFormData = jsonData.toJavaObject(PmFormData.class);
|
||||
if (Integer.parseInt(pmFormData.getStatus()) > 30) {
|
||||
throw new BadRequestException("该单据状态为已完成,无需再次回传!");
|
||||
}
|
||||
JSONObject formData = pmFormData.getForm_data();
|
||||
//要回传的json数据
|
||||
String formid = formData.getString("formid");
|
||||
if (StringUtils.isEmpty(formid)) {
|
||||
throw new BadRequestException("回传失败:回传数据form_data中数据格式不是formid,data类型");
|
||||
}
|
||||
SyncReceiptProcessHandler.handleBillEntity(pmFormData.getForm_type(), formData);
|
||||
String json = formData.toJSONString();
|
||||
String message = "";
|
||||
try {
|
||||
JSONObject res;
|
||||
if (Integer.parseInt(StatusEnum.ERP_TYPE.code(formid)) > 22) {
|
||||
String result = erpServiceUtils.audit(formData).getString("result");
|
||||
res = JSONObject.parseObject(result);
|
||||
} else {
|
||||
String result = erpServiceUtils.save(formData).getString("result");
|
||||
;
|
||||
res = JSONObject.parseObject(result);
|
||||
}
|
||||
JSONObject responseStatus = res.getJSONObject("Result").getJSONObject("ResponseStatus");
|
||||
boolean isSuccess = responseStatus.getBooleanValue("IsSuccess");
|
||||
JSONArray errors = responseStatus.getJSONArray("Errors");
|
||||
if (ObjectUtils.isNotEmpty(errors)) {
|
||||
message = errors.stream()
|
||||
.map(error -> ((JSONObject) error).getString("Message"))
|
||||
.collect(Collectors.joining("; "));
|
||||
}
|
||||
LambdaUpdateWrapper<PmFormData> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(PmFormData::getId, pmFormData.getId());
|
||||
updateWrapper.set(PmFormData::getUpdate_time, DateUtil.now());
|
||||
if (isSuccess) {
|
||||
message = responseStatus.getJSONArray("SuccessEntitys").toJSONString();
|
||||
message = "回执单创建成功,回传Erp数据为:" + message;
|
||||
updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成"));
|
||||
updateWrapper.set(PmFormData::getRemark, message);
|
||||
} else {
|
||||
message = "回执单创建失败,原因为:" + message + ",回传Erp数据为:" + json;
|
||||
updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("暂停"));
|
||||
updateWrapper.set(PmFormData::getRemark, message);
|
||||
}
|
||||
iPmFormDataService.update(updateWrapper);
|
||||
} catch (Exception ex) {
|
||||
LambdaUpdateWrapper<PmFormData> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(PmFormData::getId, pmFormData.getId());
|
||||
updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:" + ex.getMessage() + ",回传Erp数据为:" + json);
|
||||
iPmFormDataService.update(updateWrapper);
|
||||
Log.error(ex.getMessage());
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -197,6 +276,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
} else {
|
||||
//根据单据编号同步ERP单据
|
||||
List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, query.getForm_type()));
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
JSONArray mappingJson = list.get(0).getMapping_json();
|
||||
String mappingString = JSON.toJSONString(mappingJson);
|
||||
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode());
|
||||
@@ -209,6 +289,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
dtoPage.setTotal(pmFormData.size());
|
||||
return dtoPage;
|
||||
}
|
||||
}
|
||||
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
|
||||
dtoPage.setRecords(pmFormDataDtos);
|
||||
return dtoPage;
|
||||
|
||||
@@ -457,4 +457,8 @@ public class SyncErpBillsScheduleService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user