package com.product.base.service;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import com.product.admin.service.CodeService;
|
import com.product.admin.service.PublicService;
|
import com.product.base.config.CmnConst;
|
import com.product.base.util.UnUnitCodeUtil;
|
import com.product.core.dao.BaseDao;
|
import com.product.core.entity.DataTableEntity;
|
import com.product.core.entity.FieldSetEntity;
|
import com.product.core.service.support.AbstractBaseService;
|
import com.product.core.spring.context.SpringMVCContextHolder;
|
import com.product.module.sys.entity.SystemUser;
|
import com.product.util.BaseUtil;
|
|
|
@Component
|
public class ProjectItemService extends AbstractBaseService{
|
|
@Autowired
|
BaseDao baseDao;
|
|
@Autowired
|
CodeService codeService;
|
|
@Autowired
|
PublicService publicService;
|
|
/**
|
* 分页获取项目分类
|
* @param fse
|
* @return
|
*/
|
public DataTableEntity listProjectType(FieldSetEntity fse) {
|
return baseDao.listTable(CmnConst.PRODUCT_PROJECT_BASE_PROJECT_TYPE, null, null, null, null, fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE));
|
}
|
|
/**
|
* 获取项目分类
|
* @param uuid
|
* @return
|
*/
|
public FieldSetEntity getProjectType(String uuid) {
|
return baseDao.getFieldSet(CmnConst.PRODUCT_PROJECT_BASE_PROJECT_TYPE, uuid, false);
|
}
|
|
/**
|
* 保存项目分类
|
* @param fse
|
* @return
|
*/
|
public boolean saveProjectType(FieldSetEntity fse) {
|
fse.setTableName(CmnConst.PRODUCT_PROJECT_BASE_PROJECT_TYPE);
|
SystemUser user = SpringMVCContextHolder.getCurrentUser();
|
if(BaseUtil.strIsNull(fse.getUUID())) {
|
BaseUtil.createCreatorAndCreationTime(user, fse);
|
}else {
|
BaseUtil.updatedRegeneratorAndUpdateTime(user, fse);
|
}
|
return baseDao.saveFieldSetEntity(fse);
|
}
|
|
/**
|
* 获取项目分项树
|
* @param uuid
|
* @return
|
*/
|
public DataTableEntity listProjectItemTree(String uuid) {
|
DataTableEntity dtProjectItem = baseDao.listTable("SELECT uuid,itemize,itemize_code,itemize_parent_code,itemize_type FROM product_project_base_project_item WHERE itemize_type=?", new Object[] {uuid});
|
if (!BaseUtil.dataTableIsEmpty(dtProjectItem)) {
|
baseDao.loadPromptData(dtProjectItem);
|
return BaseUtil.dataTableToTreeTable(dtProjectItem, CmnConst.ITEMIZE_CODE, CmnConst.ITEMIZW_PARENT_CODE, null);
|
}
|
return null;
|
}
|
|
/**
|
* 获取单个项目分项信息
|
* @param uuid
|
* @return
|
*/
|
public FieldSetEntity getProjectItem(String uuid) {
|
return baseDao.getFieldSet(CmnConst.PRODUCT_PROJECT_BASE_PROJECT_ITEM, uuid, false);
|
}
|
|
/**
|
* 保存项目分项信息
|
* @param fse
|
* @return
|
*/
|
public boolean saveProjectItem(FieldSetEntity fse) {
|
SystemUser user = SpringMVCContextHolder.getCurrentUser();
|
if(BaseUtil.strIsNull(fse.getUUID())) {
|
//生成创建人和创建时间
|
BaseUtil.createCreatorAndCreationTime(user, fse);
|
//获取父级编码
|
String parentCode = fse.getString(CmnConst.ITEMIZW_PARENT_CODE);
|
|
//获取同类型同上级分项最大编码
|
FieldSetEntity fseMaxCodeData;
|
String currentCode;
|
if (BaseUtil.strIsNull(parentCode)) {
|
fseMaxCodeData = baseDao.getFieldSetBySQL("SELECT MAX(itemize_code)itemize_code FROM product_project_base_project_item WHERE itemize_type = ? AND itemize_parent_code IS null", new Object[] {fse.getString(CmnConst.ITEMIZE_TYPE)}, false);
|
if (fseMaxCodeData != null && !BaseUtil.strIsNull(fseMaxCodeData.getString(CmnConst.ITEMIZE_CODE))) {
|
currentCode = UnUnitCodeUtil.autoCreateCode(fseMaxCodeData.getString(CmnConst.ITEMIZE_CODE));
|
}else {
|
currentCode = "001";
|
}
|
}else {
|
fseMaxCodeData = baseDao.getFieldSetBySQL("SELECT MAX(itemize_code)itemize_code FROM product_project_base_project_item WHERE itemize_type = ? AND itemize_parent_code = ?", new Object[] {fse.getString(CmnConst.ITEMIZE_TYPE), parentCode}, false);
|
if (fseMaxCodeData != null && !BaseUtil.strIsNull(fseMaxCodeData.getString(CmnConst.ITEMIZE_CODE))) {
|
currentCode = UnUnitCodeUtil.autoCreateCode(fseMaxCodeData.getString(CmnConst.ITEMIZE_CODE));
|
}else {
|
currentCode = parentCode+"-001";
|
}
|
}
|
fse.setValue(CmnConst.ITEMIZE_CODE, currentCode);
|
|
}else {
|
BaseUtil.updatedRegeneratorAndUpdateTime(user, fse);
|
}
|
return baseDao.saveFieldSetEntity(fse);
|
}
|
|
|
/**
|
* 删除项目分项信息(验证是否包含子项)
|
* @param uuid
|
* @return
|
*/
|
public boolean deleteProjectItem(String uuid) {
|
FieldSetEntity fse = baseDao.getFieldSet(CmnConst.PRODUCT_PROJECT_BASE_PROJECT_ITEM, uuid, false);
|
if (fse != null) {
|
String itemCode = fse.getString(CmnConst.ITEMIZE_CODE);
|
return baseDao.delete(CmnConst.PRODUCT_PROJECT_BASE_PROJECT_ITEM, "itemize_code like ?", new Object[] {itemCode+"%"});
|
}
|
return true;
|
}
|
}
|