Commit 3b6cab72 authored by 顾俭's avatar 顾俭

aship/aship#4 防伪码功能-送货审核:srm提供送货单发布接口

parent 64ff60e9
package com.i1.erp.deo.service;
import com.i1.erp.base.service.IBaseFetchService;
import com.i1.erp.entity.response.Result;
import com.i1.erp.poChg.soap.PoChgService;
import com.i1.srm.deliveryOrder.dao.entity.DoMstFile;
import com.i1.srm.deliveryOrder.service.IDoMstFileService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.StringWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import static com.i1.srm.utils.SafeType.notBlankString;
@Service
public class DeliveryOrderReleaseService implements IDeliveryOrderReleaseService {
@Autowired
private IDoMstFileService doMstFileService;
@Autowired
private IBaseFetchService baseFetchService;
private Logger logger = LoggerFactory.getLogger(PoChgService.class);
@Override
public String release(String xmlStream) {
LocalDateTime dateTime = LocalDateTime.now();
String dateTimeString = dateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
Result result;
try {
logger.info("发布送货单xmlStream:{}", xmlStream);
Map map = baseFetchService.getMapFromXml(xmlStream);
List<Map<String, String>> mstList = (List) map.get("mstList");
StringBuilder stringBuilder = new StringBuilder("送货单");
for (Map<String, String> mst : mstList) {
logger.info("to handle doRelease: {}", mst);
String doUid = notBlankString(mst.get("tc_rva01"), "tc_rva01");
Optional<DoMstFile> doMstFileOptional = doMstFileService.findByDeliveryOrderUid(doUid);
if (doMstFileOptional.isPresent()) {
DoMstFile doMstFile = doMstFileOptional.get();
doMstFile.setReleased("1");
doMstFile.setReleasedDate(new Date());
doMstFile.setReleasor("ERP");
doMstFile.setSentToErp(true);
doMstFile.setSentToErpInfo("同步成功");
doMstFileService.update(doMstFile);
stringBuilder.append(" ");
stringBuilder.append(doUid);
} else {
throw new Exception("查无此送货单" + doUid);
}
}
result = Result.of(dateTimeString, "0", "", stringBuilder.append("发布成功").toString());
} catch (Exception e) {
logger.error("error:", e);
result = Result.of(dateTimeString, "1", "", e.getMessage());
}
try {
JAXBContext context = JAXBContext.newInstance(Result.class);
Marshaller marshaller = context.createMarshaller();
StringWriter sw = new StringWriter();
marshaller.marshal(result, sw);
logger.info("doRelease xml string:{}", sw.toString());
return sw.toString();
} catch (JAXBException e) {
return "";
}
}
}
package com.i1.erp.deo.service;
public interface IDeliveryOrderReleaseService {
String release(String xmlStream);
}
......@@ -89,4 +89,14 @@ public interface ISrmSoapService {
@WebMethod
String deleteReceipts(String xmlStream);
/**
* 送货单发布
* *
*
* @param xmlStream
* @return resultXml
*/
@WebMethod
String releaseDeliveryOrders(String xmlStream);
}
package com.i1.erp.soap;
import com.i1.erp.deo.service.IDeliveryOrderReleaseService;
import com.i1.erp.po.soap.IPurchaseOrderService;
import com.i1.erp.poChg.soap.IPoChgService;
import com.i1.erp.qc.soap.IQualityControlService;
......@@ -27,6 +28,8 @@ public class SrmSoapService implements ISrmSoapService {
@Autowired
private IWarehouseVoucherService warehouseVoucherService;
@Autowired
private IDeliveryOrderReleaseService deliveryOrderReleaseService;
@Override
public String addPurchaseOrders(String xmlStream) {
......@@ -67,4 +70,9 @@ public class SrmSoapService implements ISrmSoapService {
public String deleteReceipts(String xmlStream) {
return receiptService.deleteReceipts(xmlStream);
}
@Override
public String releaseDeliveryOrders(String xmlStream) {
return deliveryOrderReleaseService.release(xmlStream);
}
}
......@@ -12,6 +12,8 @@ import java.util.Set;
public interface IDoMstFileDao extends BaseJpaRepository<DoMstFile> {
Optional<DoMstFile> findByDeliveryOrderUid(String deliveryOrderUid);
Optional<DoMstFile> findByDeliveryOrderUidAndFactoryFactoryUid(String deliveryOrderUid, String factoryUid);
DoMstFile findByDeliveryOrderUidEndsWith(String suffix);
......
......@@ -30,4 +30,6 @@ public interface IDoMstFileService extends IService<DoMstFile> {
void passOnlyUnreleased(DoMstFile doMstFile) throws IOneServiceException;
DoMstFile updateNotCheckReleased(DoMstFile doMstFile) throws IOneServiceException;
Optional<DoMstFile> findByDeliveryOrderUid(String deliveryOrderUid);
}
......@@ -341,4 +341,9 @@ public class DoMstFileService extends AbstractService<DoMstFile> implements IDoM
public DoMstFile updateNotCheckReleased(DoMstFile doMstFile) throws IOneServiceException {
return super.update(doMstFile);
}
@Override
public Optional<DoMstFile> findByDeliveryOrderUid(String deliveryOrderUid) {
return dao.findByDeliveryOrderUid(deliveryOrderUid);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment