All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tp.ms.base.rest.resource.service.strengthen.BillInsertOperator Maven / Gradle / Ivy

package tp.ms.base.rest.resource.service.strengthen;

import com.alibaba.fastjson.JSON;

import lombok.extern.slf4j.Slf4j;
import tp.ms.base.rest.resource.service.IChildService;
import tp.ms.base.rest.resource.service.IPolyService;
import tp.ms.base.rest.resource.service.ace.IOperator;
import tp.ms.base.rest.resource.vo.AbstractPolyVO;
import tp.ms.base.rest.resource.vo.ChildBaseVO;
import tp.ms.base.rest.resource.vo.MajorBaseVO;
import tp.ms.common.bean.exception.ADBusinessException;
import tp.ms.common.bean.result.ResultStatus;
import tp.ms.common.bean.utils.ObjectUtilms;
import tp.ms.common.bean.vo.IChildVO;
import tp.ms.common.bean.vo.VoStatus;

@Slf4j
public class BillInsertOperator implements IOperator {

	IPolyService polyService;
	
	public BillInsertOperator(IPolyService polyService) {
		this.polyService = polyService;
	}

	@Override
	public E operate(E pvo) throws ADBusinessException {
		if(ObjectUtilms.isNotEmpty(pvo)) {
			if(ObjectUtilms.isEmpty(pvo.getChildrenVO())) {
				throw new ADBusinessException(ResultStatus.ERROR, "表体的子表数据不能为空");
			}
			MajorBaseVO parent = pvo.getParent();
			String id = null;
			if(parent.getStatus() == VoStatus.NEW) {
				id = polyService.getMajorService().insert(pvo.getParent()).getPrimaryKey();
			}
			if(id != null) {
				insertChilds(pvo.getChildrenVO(), id);
			}
		}else {
			log.info("poly is null {}", pvo);
			throw new ADBusinessException(ResultStatus.ERROR, "传入的数据错误【" + JSON.toJSONString(pvo) + "】");
		}
		return pvo;
	}

	private void insertChilds(IChildVO[] childrenVO, String parentId) throws ADBusinessException {
		if(ObjectUtilms.isNotEmpty(childrenVO)) {
			for(int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy