Files
saas-mbr/abacus.springboot.example/src/main/java/abacus/springboot/example/esb/ApiJcBillService.java
T

836 lines
27 KiB
Java

package abacus.springboot.example.esb;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import abacus.springboot.example.api.view.ApiBillHg;
import abacus.springboot.example.api.view.ApiBillHgItem;
import abacus.springboot.example.api.view.ApiBillHgPayment;
import abacus.springboot.example.api.view.ApiJcBill;
import abacus.springboot.example.api.view.ApiJcBillHgSearchItem;
import abacus.springboot.example.api.view.ApiJcBillItem;
import abacus.springboot.example.api.view.ApiJcBillSearch;
import abacus.springboot.example.api.view.ApiReqJcBill;
import abacus.springboot.example.api.view.ApiReqJcBillGoodsPhoto;
import abacus.springboot.example.api.view.ApiReqJcBillItem;
import abacus.springboot.example.api.view.JcBillCount;
import abacus.springboot.example.api.view.JcCodeFlow;
import abacus.springboot.example.api.view.JcProduct;
import abacus.springboot.example.api.view.JcProductBillSouce;
import abacus.springboot.example.dao.JcBill;
import abacus.springboot.example.dao.JcBillHg;
import abacus.springboot.example.dao.JcBillHgPay;
import abacus.springboot.example.dao.JcBillInItem;
import abacus.springboot.example.dao.JcBillPhoto;
import abacus.springboot.example.dao.JcBillSourceItem;
import abacus.springboot.example.dao.JcSourceItem;
import abacus.springboot.example.pi.ApiJcBillAccessIF;
import abacus.springboot.example.pi.JcBillAccessIF;
import abacus.springboot.example.repository.JcBillHgPayRepository;
import abacus.springboot.example.repository.JcBillHgRepository;
import abacus.springboot.example.repository.JcBillInItemRepository;
import abacus.springboot.example.repository.JcBillPhotoRepository;
import abacus.springboot.example.repository.JcBillRepository;
import abacus.springboot.example.repository.JcBillSourceItemRepository;
import abacus.springboot.example.repository.JcSourceItemRepository;
import abacus.springboot.example.wsi.ApiJcBillServiceIF;
@Service
public class ApiJcBillService implements ApiJcBillServiceIF {
private static final Logger LOG = LoggerFactory.getLogger(ApiJcBillService.class);
@Autowired
private ApiJcBillAccessIF apiJcBillAccess;
@Autowired
private JcBillAccessIF jcBillAccess;
@Autowired
private JcBillRepository jcBillRepository;
@Autowired
private JcBillSourceItemRepository jcBillSourceItemRepository;
@Autowired
private JcBillPhotoRepository jcBillPhotoRepository;
@Autowired
private JcBillHgRepository jcBillHgRepository;
@Autowired
private JcBillHgPayRepository jcBillHgPayRepository;
@Autowired
private JcSourceItemRepository jcSourceItemRepository;
@Autowired
private JcBillInItemRepository jcBillInItemRepository;
@Override
public Page<ApiJcBillSearch> queryApiJcBillSearch(String keyword, String employee, String status, Pageable pageable)
throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiJcBillSearch(keyword, employee, status, pageable);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public ApiJcBill queryApiJcBillById(String id) throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiJcBillById(id);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<ApiJcBillItem> queryApiJcBillItemByBIllId(String billId) throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiJcBillItemByBIllId(billId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public Map<String, List<JcBillPhoto>> queryJcBillPhoto(String srcid) throws RuntimeException {
try {
List<JcBillPhoto> billPhotos = jcBillAccess.queryJcBillPhoto(srcid, null, null);
if(billPhotos == null) return new HashMap<String, List<JcBillPhoto>>();
Map<String, List<JcBillPhoto>> map = billPhotos.stream()
.collect(Collectors.groupingBy(e -> {
return e.getTypephoto() + "#" + e.getSrcitemid();
},
Collectors.collectingAndThen(Collectors.toList(), value -> value)
));
return map;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public Map<String, List<JcBillPhoto>> queryJcBillPhotoIn(List<String> srcids) throws RuntimeException {
try {
List<JcBillPhoto> billPhotos = jcBillAccess.queryJcBillPhotoIn(srcids);
if(billPhotos == null) return new HashMap<String, List<JcBillPhoto>>();
Map<String, List<JcBillPhoto>> map = billPhotos.stream()
.collect(Collectors.groupingBy(e -> {
return e.getTypephoto() + "#" + e.getSrcitemid();
},
Collectors.collectingAndThen(Collectors.toList(), value -> value)
));
return map;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public ApiReqJcBill saveApiReqJcBill(ApiReqJcBill reqJcBill, JcBill jcBill, List<JcBillSourceItem> createItems)
throws RuntimeException {
try {
List<JcBillSourceItem> tempItems = jcBillSourceItemRepository.saveAll(createItems);
// Map<String, JcBillSourceItem> map = tempItems.stream()
// .collect(Collectors.groupingBy(e -> {
// return String.valueOf(e.getIndexno()) + e.getGoodsid();
// },
// Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))
// ));
// 新增
List<JcBillPhoto> createPhoto = new ArrayList<JcBillPhoto>();
if(reqJcBill.getItems() != null && reqJcBill.getItems().size() >= 1) {
JcBillPhoto fkPhoto = null;
JcBillPhoto hpPhoto = null;
for(ApiReqJcBillItem item : reqJcBill.getItems()) {
// 付款图
if(item.getPaymentPhoto() != null && item.getPaymentPhoto().size() >= 1) {
for(String urlphoto : item.getPaymentPhoto()) {
fkPhoto = new JcBillPhoto();
fkPhoto.setSrcid(jcBill.getId());
fkPhoto.setSrcitemid(String.valueOf(item.getIndexno()));
fkPhoto.setTypephoto(JcBillPhoto.JC_FK);
fkPhoto.setUrlphoto(urlphoto);
createPhoto.add(fkPhoto);
}
}
for(ApiReqJcBillGoodsPhoto photo : item.getGoodsPhotos()) {
// 货品图
if(item.getGoodsPhotos() != null && item.getGoodsPhotos().size() >= 1) {
for(String urlphoto : photo.getGoodsPhotos()) {
hpPhoto = new JcBillPhoto();
hpPhoto.setSrcid(jcBill.getId());
hpPhoto.setSrcitemid(String.valueOf(item.getIndexno()) + "#" + photo.getGoodsid());
hpPhoto.setTypephoto(JcBillPhoto.JC_HP);
hpPhoto.setUrlphoto(urlphoto);
createPhoto.add(hpPhoto);
}
}
}
}
}
// 删除图片
jcBillAccess.deleteJcBillPhoto(jcBill.getId(), null, JcBillPhoto.JC_FK);
jcBillAccess.deleteJcBillPhoto(jcBill.getId(), null, JcBillPhoto.JC_HP);
jcBillPhotoRepository.saveAll(createPhoto);
jcBillRepository.save(jcBill);
return reqJcBill;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public ApiReqJcBill updateApiReqJcBill(ApiReqJcBill reqJcBill, JcBill jcBill, List<JcBillSourceItem> createItems,
List<JcBillSourceItem> updateItems) throws RuntimeException {
try {
// Map<String, JcBillSourceItem> map = tempItems.stream()
// .collect(Collectors.groupingBy(e -> {
// return String.valueOf(e.getIndexno()) + e.getGoodsid();
// },
// Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))
// ));
// 新增
List<JcBillPhoto> createPhoto = new ArrayList<JcBillPhoto>();
if(reqJcBill.getItems() != null && reqJcBill.getItems().size() >= 1) {
JcBillPhoto fkPhoto = null;
JcBillPhoto hpPhoto = null;
for(ApiReqJcBillItem item : reqJcBill.getItems()) {
// 付款图
if(item.getPaymentPhoto() != null && item.getPaymentPhoto().size() >= 1) {
for(String urlphoto : item.getPaymentPhoto()) {
fkPhoto = new JcBillPhoto();
fkPhoto.setSrcid(jcBill.getId());
fkPhoto.setSrcitemid(String.valueOf(item.getIndexno()));
fkPhoto.setTypephoto(JcBillPhoto.JC_FK);
fkPhoto.setUrlphoto(urlphoto);
createPhoto.add(fkPhoto);
}
}
for(ApiReqJcBillGoodsPhoto photo : item.getGoodsPhotos()) {
// 货品图
if(item.getGoodsPhotos() != null && item.getGoodsPhotos().size() >= 1) {
for(String urlphoto : photo.getGoodsPhotos()) {
hpPhoto = new JcBillPhoto();
hpPhoto.setSrcid(jcBill.getId());
hpPhoto.setSrcitemid(String.valueOf(item.getIndexno()) + "#" + photo.getGoodsid());
hpPhoto.setTypephoto(JcBillPhoto.JC_HP);
hpPhoto.setUrlphoto(urlphoto);
createPhoto.add(hpPhoto);
}
}
}
}
}
// 删除图片
jcBillAccess.deleteJcBillPhoto(jcBill.getId(), null, JcBillPhoto.JC_FK);
jcBillAccess.deleteJcBillPhoto(jcBill.getId(), null, JcBillPhoto.JC_HP);
jcBillSourceItemRepository.deleteByBillid(jcBill.getId());
jcBillRepository.deleteById(jcBill.getId());
List<JcBillSourceItem> tempItems = jcBillSourceItemRepository.saveAll(createItems);
jcBillPhotoRepository.saveAll(createPhoto);
jcBillRepository.save(jcBill);
return reqJcBill;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
/*@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public ApiReqJcBill updateApiReqJcBill(ApiReqJcBill reqJcBill, JcBill jcBill, List<JcBillSourceItem> createItems,
List<JcBillSourceItem> updateItems) throws RuntimeException {
try {
List<JcBillSourceItem> tempItems = jcBillSourceItemRepository.saveAll(createItems);
// Map<String, JcBillSourceItem> map = tempItems.stream()
// .collect(Collectors.groupingBy(e -> {
// return String.valueOf(e.getIndexno());
// },
// Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))
// ));
// 新增
List<JcBillPhoto> createPhoto = new ArrayList<JcBillPhoto>();
// 修改
List<JcBillPhoto> updatePhoto = new ArrayList<JcBillPhoto>();
if(reqJcBill.getItems() != null && reqJcBill.getItems().size() >= 1) {
JcBillPhoto fkPhoto = null;
JcBillPhoto hpPhoto = null;
for(ApiReqJcBillItem item : reqJcBill.getItems()) {
// 付款图
if(item.getPaymentPhoto() != null && item.getPaymentPhoto().size() >= 1) {
for(String urlphoto : item.getPaymentPhoto()) {
fkPhoto = new JcBillPhoto();
fkPhoto.setSrcid(jcBill.getId());
fkPhoto.setSrcitemid(String.valueOf(item.getIndexno()));
fkPhoto.setTypephoto(JcBillPhoto.JC_FK);
fkPhoto.setUrlphoto(urlphoto);
createPhoto.add(fkPhoto);
}
}
for(ApiReqJcBillGoodsPhoto photo : item.getGoodsPhotos()) {
// 货品图
if(item.getGoodsPhotos() != null && item.getGoodsPhotos().size() >= 1) {
for(String urlphoto : photo.getGoodsPhotos()) {
hpPhoto = new JcBillPhoto();
hpPhoto.setSrcid(jcBill.getId());
hpPhoto.setSrcitemid(String.valueOf(item.getIndexno()) + "#" + photo.getGoodsid());
hpPhoto.setTypephoto(JcBillPhoto.JC_HP);
hpPhoto.setUrlphoto(urlphoto);
createPhoto.add(hpPhoto);
}
}
}
}
}
// 删除图片
// for(JcBillPhoto photo : createPhoto) {
// jcBillAccess.deleteJcBillPhoto(photo.getSrcid(), photo.getSrcitemid(), photo.getTypephoto());
// }
jcBillAccess.deleteJcBillPhoto(jcBill.getId(), null, JcBillPhoto.JC_FK);
jcBillAccess.deleteJcBillPhoto(jcBill.getId(), null, JcBillPhoto.JC_HP);
jcBillPhotoRepository.saveAll(createPhoto);
jcBillAccess.updateJcBill(jcBill);
jcBillAccess.updateJcBillSourceItem(updateItems);
List<JcBillSourceItem> itemsLogs = new ArrayList<JcBillSourceItem>();
itemsLogs.addAll(tempItems);
itemsLogs.addAll(updateItems);
List<JcBillPhoto> photoLogs = new ArrayList<JcBillPhoto>();
photoLogs.addAll(createPhoto);
photoLogs.addAll(updatePhoto);
操作日志
OperationLog log = new OperationLog("api_jc_bill", jcBill.getId(), "更新", "", "",
JSONObject.toJSONString(jcBill) + JSONArray.toJSONString(itemsLogs) + JSONArray.toJSONString(photoLogs));
log.setOperator(jcBill.getApplicant());
log.setOperatorName(jcBill.getApplicantname());
BusinessESUtil.checkService(this.operationLogService).saveOperationLog(log);
return reqJcBill;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}*/
@Override
public int countJcBillItemIndexno(String billId) throws RuntimeException {
try {
return jcBillAccess.countJcBillItemIndexno(billId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public JcBill queryJcBillById(String billId) throws RuntimeException {
try {
Optional<JcBill> optional = jcBillRepository.findById(billId);
return optional.isPresent() ? optional.get() : null;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<JcBillSourceItem> queryJcBillSourceItemByBillId(String billId) throws RuntimeException {
try {
List<JcBillSourceItem> list = jcBillSourceItemRepository.findByBillid(billId);
return (list != null && list.size() >= 1) ? list : null;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public JcBillSourceItem queryJcBillSourceItembyId(Long id) throws RuntimeException {
try {
Optional<JcBillSourceItem> optional = jcBillSourceItemRepository.findById(id);
return optional.isPresent() ? optional.get() : new JcBillSourceItem();
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void updateStatusJcBill(JcBill jcBill, int oldStatus) throws RuntimeException {
try {
jcBillRepository.save(jcBill);
// jcBillSourceItemRepository.saveAll(sourceItems);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public Page<ApiJcBillHgSearchItem> queryApiJcBillHgSearchItem(String keyword, String employee, String status, Pageable pageable)
throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiJcBillHgSearchItem(keyword, employee, status, pageable);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public Map<String, JcBillCount> queryJcBillCount(List<String> ids) throws RuntimeException {
try {
if(ids != null && ids.size() >= 1) {
List<JcBillCount> counts = apiJcBillAccess.queryJcBillCount(ids);
if(counts == null) return new HashMap<String, JcBillCount>();
Map<String, JcBillCount> map = counts.stream()
.collect(Collectors.groupingBy(e -> {
return e.getId();
},
Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))
));
return map;
} else {
return new HashMap<String, JcBillCount>();
}
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public ApiBillHg queryApiBillHgById(String hgId) throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiBillHgById(hgId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<ApiBillHgItem> queryApiBillHgItemByHgId(String hgId) throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiBillHgItemByHgId(hgId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<ApiBillHgPayment> queryApiBillHgPaymentByHgId(String hgId) throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiBillHgPaymentByHgId(hgId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public JcBillHg queryJcBillHg(String billHg) throws RuntimeException {
try {
Optional<JcBillHg> optional = jcBillHgRepository.findById(billHg);
return optional.isPresent() ? optional.get() : null;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void updateJcBillHg(JcBillHg entity, List<JcBillHgPay> pays) throws RuntimeException {
try {
jcBillHgRepository.save(entity);
jcBillHgPayRepository.saveAll(pays);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public JcBillPhoto queryJcBillPhoto(String srcid, String srcitemid, String typephoto) throws RuntimeException {
try {
return jcBillPhotoRepository.findBySrcidAndSrcitemidAndTypephoto(srcid, srcitemid, typephoto);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<JcBillPhoto> queryJcBillPhoto(String srcid, String typephoto) throws RuntimeException {
try {
return jcBillAccess.queryJcBillPhoto(srcid, null, typephoto);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void saveAndDeletePhoto(List<JcBillPhoto> photos, JcBillHg billHg) throws RuntimeException {
try {
for(JcBillPhoto photo : photos) {
jcBillPhotoRepository.deleteBySrcidAndSrcitemidAndTypephoto(photo.getSrcid(), photo.getSrcitemid(), photo.getTypephoto());
}
jcBillPhotoRepository.saveAll(photos);
jcBillHgRepository.save(billHg);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void saveAndDeletePhoto(List<JcBillPhoto> photos, String billId) throws RuntimeException {
try {
jcBillPhotoRepository.saveAll(photos);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public String lastBillHgId() throws RuntimeException {
try {
return jcBillAccess.lastBillHgId();
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<JcCodeFlow> queryJcCodeFlow(List<String> codes) throws RuntimeException {
try {
List<JcCodeFlow> flows = apiJcBillAccess.queryJcCodeFlow(codes);
if(flows == null) return null;
// Map<String, JcCodeFlow> map = flows.stream()
// .collect(Collectors.groupingBy(e -> {
// return e.getCode();
// },
// Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))
// ));
return flows;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<JcSourceItem> queryJcSourceItemByBillId(String billId) throws RuntimeException {
try {
return jcBillAccess.queryJcSourceItemByBillId(billId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void saveJcSourceItem(List<JcBillSourceItem> items, List<JcSourceItem> sourceItems, JcBill jcBill) throws RuntimeException {
try {
jcBillAccess.deleteJcSourceItemBySource(jcBill.getId());
if(sourceItems != null && sourceItems.size() >= 1) jcSourceItemRepository.saveAll(sourceItems);
jcBillSourceItemRepository.saveAll(items);
boolean flag = true;
for(JcBillSourceItem item : items) {
if(item.getStatus() == 0 && item.getStatus() == -2) flag = false;
}
if(flag)jcBill.setStatus(JcBill.STATUS_ONE);
jcBillRepository.save(jcBill);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public JcBillPhoto queryJcBillPhotoById(String id) throws RuntimeException {
try {
Optional<JcBillPhoto> optional = jcBillPhotoRepository.findById(Long.parseLong(id));
return optional.isPresent() ? optional.get() : null;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void deleteJcBillPhotoById(JcBillPhoto entity) throws RuntimeException {
try {
jcBillPhotoRepository.delete(entity);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
@Override
public void deleteJcSourceItem(String billid, String itemid) throws RuntimeException {
try {
Optional<JcBillSourceItem> optional = jcBillSourceItemRepository.findById(Long.parseLong(itemid));
if(optional.isPresent()) {
JcBillSourceItem item = optional.get();
jcBillAccess.deleteJcBillPhoto(billid, String.valueOf(item.getIndexno()), JcBillPhoto.JC_FK);
jcBillAccess.deleteJcBillPhoto(billid, item.getIndexno() + "#" + item.getGoodsid(), JcBillPhoto.JC_HP);
jcBillSourceItemRepository.delete(item);
}
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException(e);
}
}
@Override
public List<ApiBillHgPayment> queryApiBillHgPaymentByHgId(List<String> hgIds) throws RuntimeException {
try {
return this.apiJcBillAccess.queryApiBillHgPaymentByHgId(hgIds);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public String getBaiduToken() throws RuntimeException {
return jcBillAccess.getBaiduToken();
}
@Override
public List<JcProduct> queryJcProduct(String product, String stockInId, String hgId) throws RuntimeException {
try {
return this.apiJcBillAccess.queryJcProduct(product, stockInId, hgId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public Map<String, List<JcProductBillSouce>> queryJcProductBillSouce(List<String> billIds) throws RuntimeException {
try {
List<JcProductBillSouce> billPhotos = apiJcBillAccess.queryJcProductBillSouce(billIds);
if(billPhotos == null) return new HashMap<String, List<JcProductBillSouce>>();
Map<String, List<JcProductBillSouce>> map = billPhotos.stream()
.collect(Collectors.groupingBy(e -> {
return e.getBillid() + e.getAccount() + e.getProduct();
},
Collectors.collectingAndThen(Collectors.toList(), value -> value)
));
return map;
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<JcProduct> queryJcProduct(String product, String stockInId) throws RuntimeException {
try {
return this.apiJcBillAccess.queryJcProduct(product, stockInId);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public void updateStatusByJcBill(JcBill jcBill, int status) throws RuntimeException {
try {
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public List<JcBillHg> qeryJcBillHgs(List<String> billids) throws RuntimeException {
try {
return apiJcBillAccess.qeryJcBillHgs(billids);
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
@Override
public JcBillInItem queryJcBillInItemById(Long id) throws RuntimeException {
try {
Optional<JcBillInItem> optional = jcBillInItemRepository.findById(id);
return optional.isPresent() ? optional.get() : new JcBillInItem();
} catch (RuntimeException e) {
e.printStackTrace();
LOG.error("服务异常", e.getMessage());
throw new RuntimeException("服务异常:", e);
}
}
}