package com.ruoyi.web.controller.project;
|
|
import java.math.BigDecimal;
|
import java.util.Arrays;
|
import java.util.List;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.bean.DtoConversionUtils;
|
import com.ruoyi.project.domain.ServiceReimbursementdetailVO;
|
import com.ruoyi.project.service.IServiceReimbursementdetailSharedService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.project.domain.ServiceReimbursementdetail;
|
import com.ruoyi.project.service.IServiceReimbursementdetailService;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
/**
|
* 报销申请明细Controller
|
*
|
* @author ruoyi
|
* @date 2022-01-24
|
*/
|
@Api("报销申请明细")
|
@RestController
|
@RequestMapping("/project/reimbursementdetail")
|
public class ServiceReimbursementdetailController extends BaseController {
|
@Autowired
|
private IServiceReimbursementdetailService serviceReimbursementdetailService;
|
@Autowired
|
private IServiceReimbursementdetailSharedService detailSharedService;
|
|
/**
|
* 查询报销申请明细列表
|
*/
|
@ApiOperation("查询报销申请明细列表")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(ServiceReimbursementdetail serviceReimbursementdetail) {
|
startPage();
|
//List<ServiceReimbursementdetail> list = serviceReimbursementdetailService.queryList(serviceReimbursementdetail);
|
List<ServiceReimbursementdetail> list = serviceReimbursementdetailService.selectServiceReimbursementdetailList(serviceReimbursementdetail);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出报销申请明细列表
|
*/
|
@ApiOperation("导出报销申请明细列表")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:export')")
|
@Log(title = "报销申请明细", businessType = BusinessType.EXPORT)
|
@GetMapping("/export")
|
public AjaxResult export(ServiceReimbursementdetail serviceReimbursementdetail) {
|
List<ServiceReimbursementdetail> list = serviceReimbursementdetailService.queryList(serviceReimbursementdetail);
|
ExcelUtil<ServiceReimbursementdetail> util = new ExcelUtil<ServiceReimbursementdetail>(ServiceReimbursementdetail.class);
|
return util.exportExcel(list, "报销申请明细数据");
|
}
|
|
|
@GetMapping("/deleteByRBId/{rbid}")
|
public AjaxResult removeAllDetail(@PathVariable("rbid") Long rbid) {
|
List<Long> ids = serviceReimbursementdetailService.getAllIds(rbid);
|
Long[] arr = (Long[]) ids.toArray(new Long[ids.size()]);
|
return remove(arr);
|
}
|
|
|
/**
|
* 获取报销申请明细详细信息
|
*/
|
@ApiOperation("获取报销申请明细详细信息")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:query')")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
return AjaxResult.success(serviceReimbursementdetailService.getById(id));
|
}
|
|
/**
|
* 新增报销申请明细
|
*/
|
@ApiOperation("新增报销申请明细")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:add')")
|
@Log(title = "报销申请明细", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@RepeatSubmit
|
public AjaxResult add(@RequestBody ServiceReimbursementdetailVO serviceReimbursementdetailVO) {
|
ServiceReimbursementdetail serviceReimbursementdetail = DtoConversionUtils.sourceToTarget(serviceReimbursementdetailVO, ServiceReimbursementdetail.class);
|
//将前端传来的附件集合转成字符串
|
if (!CollectionUtils.isEmpty(serviceReimbursementdetailVO.getAnnexfilesList())) {
|
serviceReimbursementdetail.setAnnexfiles(JSON.toJSONString(serviceReimbursementdetailVO.getAnnexfilesList()));
|
}
|
if (!CollectionUtils.isEmpty(serviceReimbursementdetailVO.getInvoicefilesList())) {
|
serviceReimbursementdetail.setInvoicefiles(JSON.toJSONString(serviceReimbursementdetailVO.getInvoicefilesList()));
|
}
|
boolean save = serviceReimbursementdetailService.save(serviceReimbursementdetail);
|
return AjaxResult.success(serviceReimbursementdetail);
|
}
|
|
/**
|
* 修改报销申请明细
|
*/
|
@ApiOperation("修改报销申请明细")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:edit')")
|
@Log(title = "修改申请明细", businessType = BusinessType.UPDATE)
|
@PostMapping("/updateRDlList")
|
public AjaxResult updateRDlList(@RequestBody List<ServiceReimbursementdetail> serviceReimbursementdetails) {
|
for (ServiceReimbursementdetail serviceReimbursementdetail : serviceReimbursementdetails) {
|
serviceReimbursementdetailService.saveOrUpdate(serviceReimbursementdetail);
|
|
}
|
return null;
|
}
|
|
/**
|
* 修改报销申请明细
|
*/
|
@ApiOperation("修改报销申请明细")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:edit')")
|
@Log(title = "报销申请明细", businessType = BusinessType.UPDATE)
|
@PostMapping("/reimbursementdetailEdit")
|
//@RepeatSubmit
|
public AjaxResult edit(@RequestBody ServiceReimbursementdetailVO serviceReimbursementdetailVO) {
|
if (serviceReimbursementdetailVO.getTrafficexpense() == null) {
|
serviceReimbursementdetailVO.setTrafficexpense(new BigDecimal(0));
|
}
|
if (serviceReimbursementdetailVO.getCityfee() == null) {
|
serviceReimbursementdetailVO.setCityfee(new BigDecimal(0));
|
}
|
if (serviceReimbursementdetailVO.getHotelexpense() == null) {
|
serviceReimbursementdetailVO.setHotelexpense(new BigDecimal(0));
|
}
|
if (serviceReimbursementdetailVO.getFoodexpenses() == null) {
|
serviceReimbursementdetailVO.setFoodexpenses(new BigDecimal(0));
|
}
|
if (serviceReimbursementdetailVO.getFoodallowance() == null) {
|
serviceReimbursementdetailVO.setFoodallowance(new BigDecimal(0));
|
}
|
if (serviceReimbursementdetailVO.getOtherexpense() == null) {
|
serviceReimbursementdetailVO.setOtherexpense(new BigDecimal(0));
|
}
|
if (serviceReimbursementdetailVO.getOtherfeeamount() == null) {
|
serviceReimbursementdetailVO.setOtherfeeamount(new BigDecimal(0));
|
}
|
ServiceReimbursementdetail serviceReimbursementdetail = DtoConversionUtils.sourceToTarget(serviceReimbursementdetailVO, ServiceReimbursementdetail.class);
|
if (!CollectionUtils.isEmpty(serviceReimbursementdetailVO.getAnnexfilesList())) {
|
//对前端传过来的数组,进行JSON序列化,并赋值给Annexfiles
|
serviceReimbursementdetail.setAnnexfiles(JSON.toJSONString(serviceReimbursementdetailVO.getAnnexfilesList()));
|
} else {
|
serviceReimbursementdetail.setAnnexfiles(null);
|
}
|
if (!CollectionUtils.isEmpty(serviceReimbursementdetailVO.getInvoicefilesList())) {
|
//对前端传过来的数组,进行JSON序列化,并赋值给Invoicefiles
|
serviceReimbursementdetail.setInvoicefiles(JSON.toJSONString(serviceReimbursementdetailVO.getInvoicefilesList()));
|
} else {
|
serviceReimbursementdetail.setInvoicefiles(null);
|
}
|
return toAjax(serviceReimbursementdetailService.updateById(serviceReimbursementdetail));
|
}
|
|
/**
|
* 删除报销申请明细
|
*/
|
@ApiOperation("删除报销申请明细")
|
//// @PreAuthorize("@ss.hasPermi('project:reimbursementdetail:remove')")
|
@Log(title = "报销申请明细", businessType = BusinessType.DELETE)
|
@GetMapping("/remove/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids) {
|
return toAjax(serviceReimbursementdetailService.removeByIds(Arrays.asList(ids)));
|
}
|
|
|
/**
|
* 删除报销申请明细并修改金额
|
*/
|
@ApiOperation("删除报销申请明细并修改金额")
|
@Log(title = "报销申请明细", businessType = BusinessType.DELETE)
|
@GetMapping("/deleteDetail/{id}")
|
public AjaxResult deleteDetail(@PathVariable Long id) {
|
return AjaxResult.success(serviceReimbursementdetailService.deleteDetail(id));
|
}
|
|
}
|