package com.product.administration.service; import com.product.administration.config.CmnConst; import com.product.administration.config.SystemCode; import com.product.administration.service.ide.ICarApplicationService; import com.product.common.lang.StringUtils; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.permission.PermissionService; import com.product.core.service.support.AbstractBaseService; import com.product.core.service.support.QueryFilterService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.core.transfer.Transactional; import com.product.util.BaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.text.DateFormat; import java.util.Date; /** * Copyright LX * @Title: CarApplicationService * @Project: product-server * @date: 2021-05-06 9:22 * @author: ZhouJie * @Description: 用车申请 */ @Component public class CarApplicationService extends AbstractBaseService implements ICarApplicationService { @Autowired public BaseDao baseDao; @Autowired PermissionService permissionService; @Autowired QueryFilterService queryFilterService; /** * @description: 用车申请保存 * @author: ZhouJie * @date: 2021-05-06 10:52 */ @Override @Transactional public String saveCarApplication(FieldSetEntity fs) { if(StringUtils.isEmpty(fs.getString(CmnConst.UUID))){ fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue("created_utc_datetime",new Date()); return baseDao.add(fs); } else { fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue("updated_utc_datetime",new Date()); baseDao.update(fs); return fs.getString(CmnConst.UUID); } } /** * @description: 用车申请删除 * @author: ZhouJie * @date: 2021-05-06 10:53 */ @Override @Transactional public boolean deleteCarApplication(FieldSetEntity fs) { String uuid = fs.getUUID(); String[] uuids = uuid.split(","); return baseDao.delete(CmnConst.PRODUCT_OA_CAR_APPLICATION,BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuids.length, true), uuids); } /** * @description: 用车申请列表获取 * @author: ZhouJie * @date: 2021-05-06 14:23 */ public DataTableEntity CarApplicationlist(FieldSetEntity fs) { String queryFilter; if(BaseUtil.dataTableIsEmpty(fs.getSubDataTable("systemSeniorQueryString"))){ queryFilter = ""; }else { queryFilter = queryFilterService.getQueryFilter(fs) + " and "; } queryFilter += fs.getString("filter"); String filters = " applicant=? and "+queryFilter; String dataFilter = permissionService.getDataFilter(fs.getTableName(),CmnConst.CREATED_BY); if(!StringUtils.isEmpty(dataFilter)){ filters += " and "+dataFilter; } DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_OA_CAR_APPLICATION,filters,new Object[]{SpringMVCContextHolder.getCurrentUser().getUser_id()},null,"created_utc_datetime desc",fs.getInteger(CmnConst.PAGESIZE), fs.getInteger(CmnConst.CPAGE)); baseDao.loadPromptData(dt); return dt; } /** * @description: 用车申请详情查看 * @author: ZhouJie * @date: 2021-05-06 15:53 */ public FieldSetEntity CarApplicationInfo(FieldSetEntity fs) throws BaseException { return baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_CAR_APPLICATION,fs.getUUID(),true); } /** * @description: 用车申请送办 * @author: ZhouJie * @date: 2021-06-03 14:53 */ @Transactional public boolean senCarApplication(String uuid){ String senCarApplication = "senCarApplication"; //获取当前申请的车辆申请信息 FieldSetEntity fs = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_CAR_APPLICATION,uuid,false); DateFormat df= DateFormat.getDateInstance(); String date1 = fs.getString("driving_time"); String date2 = fs.getString("return_time"); DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_OA_CAR_APPLICATION," vehicle_info_uuid=? and flow_flag=? and uuid <> ? ",new Object[]{fs.getString("vehicle_info_uuid"),1,uuid}); if(dt!=null && dt.getRows()>0){ for (int i = 0; i < dt.getRows(); i++) { FieldSetEntity fsub = dt.getFieldSetEntity(i); String datee1 = fsub.getString("driving_time"); String datee2 = fsub.getString("return_time"); if((date1.compareTo(datee1)<=0 && date2.compareTo(datee1)<=0)||(date1.compareTo(datee2)>=0 && date2.compareTo(datee2)>=0)){ return true; } } } throw new BaseException(SystemCode.SYSTEM_CAR_APPLICATION_ALREADY_FAIL.getValue(), SystemCode.SYSTEM_CAR_APPLICATION_ALREADY_FAIL.getText(), this.getClass(), senCarApplication); } }