main
parent
89c4af4972
commit
92e9bed75a
|
@ -132,6 +132,19 @@
|
|||
<version>${hutool.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 二维码 -->
|
||||
<dependency>
|
||||
<groupId>com.google.zxing</groupId>
|
||||
<artifactId>core</artifactId>
|
||||
<version>3.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.zxing</groupId>
|
||||
<artifactId>javase</artifactId>
|
||||
<version>3.3.1</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
File diff suppressed because one or more lines are too long
|
@ -19,6 +19,10 @@ import com.yanzhu.common.utils.MessageUtils;
|
|||
import com.yanzhu.common.utils.StringUtils;
|
||||
import com.yanzhu.system.service.ISysUserService;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户验证处理
|
||||
*
|
||||
|
@ -63,13 +67,14 @@ public class UserDetailsServiceImpl implements UserDetailsService
|
|||
|
||||
//设置项目单位信息
|
||||
if(!user.isAdmin()){
|
||||
String as = user.getDept().getAncestors()+","+user.getDeptId();
|
||||
//判断是否是段队管理员
|
||||
String[] ancestors = user.getDept().getAncestors().split(",");
|
||||
Long deptId = Convert.toLong(ancestors[ancestors.length-1]);
|
||||
if(deptId != null){
|
||||
SysDept sysDept = sysDeptService.selectDeptById(deptId);
|
||||
user.setParDeptId(sysDept.getDeptId());
|
||||
user.setParDeptName(sysDept.getDeptName());
|
||||
String[] ancestorsIds = as.split(",");
|
||||
List<Long> deptIds = Arrays.stream(ancestorsIds).map(ancestors -> Long.parseLong(ancestors)).collect(Collectors.toList());
|
||||
List<SysDept> depts = sysDeptService.selectParentDeptByIds(deptIds);
|
||||
if(StringUtils.isNotEmpty(depts)){
|
||||
user.setParDeptId(depts.get(0).getDeptId());
|
||||
user.setParDeptName(depts.get(0).getDeptName());
|
||||
}
|
||||
}else{
|
||||
user.setParDeptId(100L);
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
package com.yanzhu.web;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.yanzhu.common.annotation.Anonymous;
|
||||
import com.yanzhu.common.config.YanZhuConfig;
|
||||
import com.yanzhu.common.core.domain.entity.SysUser;
|
||||
import com.yanzhu.common.core.text.Convert;
|
||||
import com.yanzhu.common.exception.ServiceException;
|
||||
import com.yanzhu.common.utils.DateUtils;
|
||||
import com.yanzhu.common.utils.ZxingUtils;
|
||||
import com.yanzhu.project.domain.ProProjectInfo;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -50,6 +58,77 @@ public class ProProjectApplyController extends BaseController
|
|||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目申请列表
|
||||
* @PreAuthorize("@ss.hasPermi('project:projectApply:list')")
|
||||
*/
|
||||
@GetMapping("/checkApplyList")
|
||||
public TableDataInfo checkApplyList(ProProjectApply proProjectApply)
|
||||
{
|
||||
SysUser sysUser = super.getLoginUser().getUser();
|
||||
if(Objects.equals(proProjectApply.getActiveName(),"dys")){
|
||||
proProjectApply.setApplyStatus("10");
|
||||
}else{
|
||||
proProjectApply.setApplyStatus("100");
|
||||
}
|
||||
//超管查询所有数据
|
||||
if(!SysUser.isAdmin(sysUser.getUserId())){
|
||||
proProjectApply.setDeptAncestors(sysUser.getDept().getAncestors()+","+sysUser.getDeptId());
|
||||
}
|
||||
proProjectApply.setIsDel("0");
|
||||
startPage();
|
||||
List<ProProjectApply> list = proProjectApplyService.selectProProjectApplyList(proProjectApply);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目申请列表
|
||||
* @PreAuthorize("@ss.hasPermi('project:projectApply:list')")
|
||||
*/
|
||||
@GetMapping("/createQr/{id}")
|
||||
public AjaxResult createQr(@PathVariable("id") Long id)
|
||||
{
|
||||
String filePath = YanZhuConfig.getUploadPath() + "/" + DateUtils.datePath();
|
||||
String fileName = id+"_"+System.currentTimeMillis();
|
||||
String data = "http://49.235.181.228:8088/#/ApplyDetail?applyId="+id;
|
||||
try {
|
||||
File folder = new File(filePath);
|
||||
if(!folder.exists()){
|
||||
folder.mkdirs();
|
||||
}
|
||||
String path = ZxingUtils.createImage(filePath, fileName, "png", data, 200, null);
|
||||
path = path.replace(YanZhuConfig.getProfile(),"/profile");
|
||||
ProProjectApply proProjectApply = proProjectApplyService.selectProProjectApplyById(id);
|
||||
proProjectApply.setQrPath(path);
|
||||
proProjectApplyService.updateProProjectApply(proProjectApply);
|
||||
return success(proProjectApply);
|
||||
}catch (Exception e){
|
||||
throw new ServiceException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目申请列表
|
||||
* @PreAuthorize("@ss.hasPermi('project:projectApply:list')")
|
||||
*/
|
||||
@GetMapping("/findGroupCountByStatus")
|
||||
public AjaxResult findGroupCountByStatus(ProProjectApply proProjectApply)
|
||||
{
|
||||
SysUser sysUser = super.getLoginUser().getUser();
|
||||
if(Objects.equals(proProjectApply.getActiveName(),"dys")){
|
||||
proProjectApply.setApplyStatus("10");
|
||||
}else{
|
||||
proProjectApply.setApplyStatus("100");
|
||||
}
|
||||
//超管查询所有数据
|
||||
if(!SysUser.isAdmin(sysUser.getUserId())){
|
||||
proProjectApply.setDeptAncestors(sysUser.getDept().getAncestors()+","+sysUser.getDeptId());
|
||||
}
|
||||
proProjectApply.setIsDel("0");
|
||||
List<Map<String,Object>> list = proProjectApplyService.findGroupCountByStatus(proProjectApply);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出项目申请列表
|
||||
*/
|
||||
|
@ -67,6 +146,7 @@ public class ProProjectApplyController extends BaseController
|
|||
* 获取项目申请详细信息
|
||||
* @PreAuthorize("@ss.hasPermi('project:projectApply:query')")
|
||||
*/
|
||||
@Anonymous
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
|
@ -85,9 +165,21 @@ public class ProProjectApplyController extends BaseController
|
|||
}
|
||||
|
||||
/**
|
||||
* 修改项目申请
|
||||
* 新增项目申请
|
||||
* @PreAuthorize("@ss.hasPermi('project:projectApply:add')")
|
||||
*/
|
||||
@Log(title = "项目申请", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/addApplyDetail")
|
||||
public AjaxResult addApplyDetail(@RequestBody ProProjectApply proProjectApply)
|
||||
{
|
||||
return toAjax(proProjectApplyService.insertMyProProjectApplyDetail(proProjectApply));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改项目申请
|
||||
* @PreAuthorize("@ss.hasPermi('project:projectApply:edit')")
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectApply:edit')")
|
||||
@Log(title = "项目申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProProjectApply proProjectApply)
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
package com.yanzhu.web;
|
||||
|
||||
import com.yanzhu.common.annotation.Log;
|
||||
import com.yanzhu.common.core.controller.BaseController;
|
||||
import com.yanzhu.common.core.domain.AjaxResult;
|
||||
import com.yanzhu.common.core.page.TableDataInfo;
|
||||
import com.yanzhu.common.enums.BusinessType;
|
||||
import com.yanzhu.common.utils.poi.ExcelUtil;
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetailCheck;
|
||||
import com.yanzhu.project.service.IProProjectApplyDetailCheckService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 申请详情验收Controller
|
||||
*
|
||||
* @author yanZhu
|
||||
* @date 2024-09-01
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/proProjectApplyDetailCheck")
|
||||
public class ProProjectApplyDetailCheckController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IProProjectApplyDetailCheckService proProjectApplyDetailCheckService;
|
||||
|
||||
/**
|
||||
* 查询申请详情验收列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('manage:proProjectApplyDetailCheck:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
startPage();
|
||||
List<ProProjectApplyDetailCheck> list = proProjectApplyDetailCheckService.selectProProjectApplyDetailCheckList(proProjectApplyDetailCheck);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出申请详情验收列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('manage:proProjectApplyDetailCheck:export')")
|
||||
@Log(title = "申请详情验收", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
List<ProProjectApplyDetailCheck> list = proProjectApplyDetailCheckService.selectProProjectApplyDetailCheckList(proProjectApplyDetailCheck);
|
||||
ExcelUtil<ProProjectApplyDetailCheck> util = new ExcelUtil<ProProjectApplyDetailCheck>(ProProjectApplyDetailCheck.class);
|
||||
util.exportExcel(response, list, "申请详情验收数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取申请详情验收详细信息
|
||||
* @PreAuthorize("@ss.hasPermi('manage:proProjectApplyDetailCheck:query')")
|
||||
*/
|
||||
@GetMapping(value = "/findAll/{detailId}")
|
||||
public AjaxResult findAll(@PathVariable("detailId") Long detailId)
|
||||
{
|
||||
return success(proProjectApplyDetailCheckService.selectProProjectApplyDetailCheckByDetailId(detailId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增申请详情验收
|
||||
* @PreAuthorize("@ss.hasPermi('manage:proProjectApplyDetailCheck:add')")
|
||||
*/
|
||||
@Log(title = "申请详情验收", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
return toAjax(proProjectApplyDetailCheckService.insertProProjectApplyDetailCheck(proProjectApplyDetailCheck));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改申请详情验收
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('manage:proProjectApplyDetailCheck:edit')")
|
||||
@Log(title = "申请详情验收", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
return toAjax(proProjectApplyDetailCheckService.updateProProjectApplyDetailCheck(proProjectApplyDetailCheck));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除申请详情验收
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('manage:proProjectApplyDetailCheck:remove')")
|
||||
@Log(title = "申请详情验收", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{detailIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] detailIds)
|
||||
{
|
||||
return toAjax(proProjectApplyDetailCheckService.deleteProProjectApplyDetailCheckByDetailIds(detailIds));
|
||||
}
|
||||
}
|
|
@ -62,6 +62,10 @@ public class ProProjectApply extends BaseEntity
|
|||
@Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date useTime;
|
||||
|
||||
/** 二维码地址 */
|
||||
@Excel(name = "二维码地址")
|
||||
private String qrPath;
|
||||
|
||||
/** 是否删除 */
|
||||
@Excel(name = "是否删除")
|
||||
private String isDel;
|
||||
|
@ -69,6 +73,8 @@ public class ProProjectApply extends BaseEntity
|
|||
/** 申请人单位名称 */
|
||||
private String createByDeptName;
|
||||
|
||||
private String deptAncestors;
|
||||
|
||||
/** 项目申请明细信息 */
|
||||
private List<ProProjectApplyDetail> proProjectApplyDetailList;
|
||||
|
||||
|
@ -187,6 +193,14 @@ public class ProProjectApply extends BaseEntity
|
|||
this.createByDeptName = createByDeptName;
|
||||
}
|
||||
|
||||
public String getQrPath() {
|
||||
return qrPath;
|
||||
}
|
||||
|
||||
public void setQrPath(String qrPath) {
|
||||
this.qrPath = qrPath;
|
||||
}
|
||||
|
||||
public List<ProProjectApplyDetail> getProProjectApplyDetailList()
|
||||
{
|
||||
return proProjectApplyDetailList;
|
||||
|
@ -197,6 +211,14 @@ public class ProProjectApply extends BaseEntity
|
|||
this.proProjectApplyDetailList = proProjectApplyDetailList;
|
||||
}
|
||||
|
||||
public String getDeptAncestors() {
|
||||
return deptAncestors;
|
||||
}
|
||||
|
||||
public void setDeptAncestors(String deptAncestors) {
|
||||
this.deptAncestors = deptAncestors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
|
|
|
@ -78,6 +78,18 @@ public class ProProjectApplyDetail extends BaseEntity
|
|||
@Excel(name = "总价")
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
/** 添加类型 */
|
||||
@Excel(name = "添加类型")
|
||||
private int pushType;
|
||||
|
||||
/** 验收总量 */
|
||||
@Excel(name = "验收总量")
|
||||
private String checkedTotalValue;
|
||||
|
||||
/** 是否验收 */
|
||||
@Excel(name = "是否验收")
|
||||
private int isChecked;
|
||||
|
||||
/** 是否删除 */
|
||||
@Excel(name = "是否删除")
|
||||
private String isDel;
|
||||
|
@ -226,6 +238,30 @@ public class ProProjectApplyDetail extends BaseEntity
|
|||
return isDel;
|
||||
}
|
||||
|
||||
public int getPushType() {
|
||||
return pushType;
|
||||
}
|
||||
|
||||
public void setPushType(int pushType) {
|
||||
this.pushType = pushType;
|
||||
}
|
||||
|
||||
public String getCheckedTotalValue() {
|
||||
return checkedTotalValue;
|
||||
}
|
||||
|
||||
public void setCheckedTotalValue(String checkedTotalValue) {
|
||||
this.checkedTotalValue = checkedTotalValue;
|
||||
}
|
||||
|
||||
public int getIsChecked() {
|
||||
return isChecked;
|
||||
}
|
||||
|
||||
public void setIsChecked(int isChecked) {
|
||||
this.isChecked = isChecked;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
package com.yanzhu.project.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.yanzhu.common.annotation.Excel;
|
||||
import com.yanzhu.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 申请详情验收对象 pro_project_apply_detail_check
|
||||
*
|
||||
* @author yanZhu
|
||||
* @date 2024-09-01
|
||||
*/
|
||||
public class ProProjectApplyDetailCheck extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 详情主键 */
|
||||
@Excel(name = "详情主键")
|
||||
private Long detailId;
|
||||
|
||||
/** 验收值 */
|
||||
@Excel(name = "验收值")
|
||||
private String checkValue;
|
||||
|
||||
/** 验收价格 */
|
||||
@Excel(name = "验收价格")
|
||||
private BigDecimal checkPrice;
|
||||
|
||||
public void setDetailId(Long detailId)
|
||||
{
|
||||
this.detailId = detailId;
|
||||
}
|
||||
|
||||
public Long getDetailId()
|
||||
{
|
||||
return detailId;
|
||||
}
|
||||
public void setCheckValue(String checkValue)
|
||||
{
|
||||
this.checkValue = checkValue;
|
||||
}
|
||||
|
||||
public String getCheckValue()
|
||||
{
|
||||
return checkValue;
|
||||
}
|
||||
public void setCheckPrice(BigDecimal checkPrice)
|
||||
{
|
||||
this.checkPrice = checkPrice;
|
||||
}
|
||||
|
||||
public BigDecimal getCheckPrice()
|
||||
{
|
||||
return checkPrice;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("detailId", getDetailId())
|
||||
.append("checkValue", getCheckValue())
|
||||
.append("checkPrice", getCheckPrice())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package com.yanzhu.project.mapper;
|
||||
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetailCheck;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 申请详情验收Mapper接口
|
||||
*
|
||||
* @author yanZhu
|
||||
* @date 2024-09-01
|
||||
*/
|
||||
public interface ProProjectApplyDetailCheckMapper
|
||||
{
|
||||
/**
|
||||
* 查询申请详情验收
|
||||
*
|
||||
* @param detailId 申请详情验收主键
|
||||
* @return 申请详情验收
|
||||
*/
|
||||
public List<ProProjectApplyDetailCheck> selectProProjectApplyDetailCheckByDetailId(Long detailId);
|
||||
|
||||
/**
|
||||
* 查询申请详情验收列表
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 申请详情验收集合
|
||||
*/
|
||||
public List<ProProjectApplyDetailCheck> selectProProjectApplyDetailCheckList(ProProjectApplyDetailCheck proProjectApplyDetailCheck);
|
||||
|
||||
/**
|
||||
* 新增申请详情验收
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertProProjectApplyDetailCheck(ProProjectApplyDetailCheck proProjectApplyDetailCheck);
|
||||
|
||||
/**
|
||||
* 修改申请详情验收
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateProProjectApplyDetailCheck(ProProjectApplyDetailCheck proProjectApplyDetailCheck);
|
||||
|
||||
/**
|
||||
* 删除申请详情验收
|
||||
*
|
||||
* @param detailId 申请详情验收主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProProjectApplyDetailCheckByDetailId(Long detailId);
|
||||
|
||||
/**
|
||||
* 批量删除申请详情验收
|
||||
*
|
||||
* @param detailIds 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProProjectApplyDetailCheckByDetailIds(Long[] detailIds);
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
package com.yanzhu.project.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.yanzhu.project.domain.ProProjectApply;
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetail;
|
||||
|
||||
|
@ -28,6 +30,14 @@ public interface ProProjectApplyMapper
|
|||
*/
|
||||
public List<ProProjectApply> selectProProjectApplyList(ProProjectApply proProjectApply);
|
||||
|
||||
/**
|
||||
* 统计项目申请信息
|
||||
*
|
||||
* @param proProjectApply 项目申请
|
||||
* @return 项目申请集合
|
||||
*/
|
||||
public List<Map<String,Object>> findGroupCountByStatus(ProProjectApply proProjectApply);
|
||||
|
||||
/**
|
||||
* 新增项目申请
|
||||
*
|
||||
|
@ -84,4 +94,8 @@ public interface ProProjectApplyMapper
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteProProjectApplyDetailByApplyId(Long id);
|
||||
|
||||
public ProProjectApplyDetail selectProProjectApplyDetailById(Long id);
|
||||
|
||||
public int updateProProjectApplyDetail(ProProjectApplyDetail proProjectApplyDetail);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package com.yanzhu.project.service;
|
||||
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetailCheck;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 申请详情验收Service接口
|
||||
*
|
||||
* @author yanZhu
|
||||
* @date 2024-09-01
|
||||
*/
|
||||
public interface IProProjectApplyDetailCheckService
|
||||
{
|
||||
/**
|
||||
* 查询申请详情验收
|
||||
*
|
||||
* @param detailId 申请详情验收主键
|
||||
* @return 申请详情验收
|
||||
*/
|
||||
public List<ProProjectApplyDetailCheck> selectProProjectApplyDetailCheckByDetailId(Long detailId);
|
||||
|
||||
/**
|
||||
* 查询申请详情验收列表
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 申请详情验收集合
|
||||
*/
|
||||
public List<ProProjectApplyDetailCheck> selectProProjectApplyDetailCheckList(ProProjectApplyDetailCheck proProjectApplyDetailCheck);
|
||||
|
||||
/**
|
||||
* 新增申请详情验收
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertProProjectApplyDetailCheck(ProProjectApplyDetailCheck proProjectApplyDetailCheck);
|
||||
|
||||
/**
|
||||
* 修改申请详情验收
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateProProjectApplyDetailCheck(ProProjectApplyDetailCheck proProjectApplyDetailCheck);
|
||||
|
||||
/**
|
||||
* 批量删除申请详情验收
|
||||
*
|
||||
* @param detailIds 需要删除的申请详情验收主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProProjectApplyDetailCheckByDetailIds(Long[] detailIds);
|
||||
|
||||
/**
|
||||
* 删除申请详情验收信息
|
||||
*
|
||||
* @param detailId 申请详情验收主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteProProjectApplyDetailCheckByDetailId(Long detailId);
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
package com.yanzhu.project.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.yanzhu.project.domain.ProProjectApply;
|
||||
|
||||
/**
|
||||
|
@ -27,6 +29,14 @@ public interface IProProjectApplyService
|
|||
*/
|
||||
public List<ProProjectApply> selectProProjectApplyList(ProProjectApply proProjectApply);
|
||||
|
||||
/**
|
||||
* 统计项目申请信息
|
||||
*
|
||||
* @param proProjectApply 项目申请
|
||||
* @return 项目申请集合
|
||||
*/
|
||||
public List<Map<String,Object>> findGroupCountByStatus(ProProjectApply proProjectApply);
|
||||
|
||||
/**
|
||||
* 新增项目申请
|
||||
*
|
||||
|
@ -35,6 +45,14 @@ public interface IProProjectApplyService
|
|||
*/
|
||||
public int insertProProjectApply(ProProjectApply proProjectApply);
|
||||
|
||||
/**
|
||||
* 新增项目申请
|
||||
*
|
||||
* @param proProjectApply 项目申请
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertMyProProjectApplyDetail(ProProjectApply proProjectApply);
|
||||
|
||||
/**
|
||||
* 修改项目申请
|
||||
*
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
package com.yanzhu.project.service.impl;
|
||||
|
||||
import com.yanzhu.common.core.text.Convert;
|
||||
import com.yanzhu.common.utils.DateUtils;
|
||||
import com.yanzhu.common.utils.SecurityUtils;
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetail;
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetailCheck;
|
||||
import com.yanzhu.project.mapper.ProProjectApplyDetailCheckMapper;
|
||||
import com.yanzhu.project.mapper.ProProjectApplyMapper;
|
||||
import com.yanzhu.project.service.IProProjectApplyDetailCheckService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 申请详情验收Service业务层处理
|
||||
*
|
||||
* @author yanZhu
|
||||
* @date 2024-09-01
|
||||
*/
|
||||
@Service
|
||||
public class ProProjectApplyDetailCheckServiceImpl implements IProProjectApplyDetailCheckService
|
||||
{
|
||||
@Autowired
|
||||
private ProProjectApplyMapper proProjectApplyMapper;
|
||||
|
||||
@Autowired
|
||||
private ProProjectApplyDetailCheckMapper proProjectApplyDetailCheckMapper;
|
||||
|
||||
/**
|
||||
* 查询申请详情验收
|
||||
*
|
||||
* @param detailId 申请详情验收主键
|
||||
* @return 申请详情验收
|
||||
*/
|
||||
@Override
|
||||
public List<ProProjectApplyDetailCheck> selectProProjectApplyDetailCheckByDetailId(Long detailId)
|
||||
{
|
||||
return proProjectApplyDetailCheckMapper.selectProProjectApplyDetailCheckByDetailId(detailId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询申请详情验收列表
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 申请详情验收
|
||||
*/
|
||||
@Override
|
||||
public List<ProProjectApplyDetailCheck> selectProProjectApplyDetailCheckList(ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
return proProjectApplyDetailCheckMapper.selectProProjectApplyDetailCheckList(proProjectApplyDetailCheck);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增申请详情验收
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertProProjectApplyDetailCheck(ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
proProjectApplyDetailCheck.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||
proProjectApplyDetailCheck.setCreateTime(DateUtils.getNowDate());
|
||||
int res = proProjectApplyDetailCheckMapper.insertProProjectApplyDetailCheck(proProjectApplyDetailCheck);
|
||||
if(res>0){
|
||||
ProProjectApplyDetail proProjectApplyDetail = proProjectApplyMapper.selectProProjectApplyDetailById(proProjectApplyDetailCheck.getDetailId());
|
||||
proProjectApplyDetail.setIsChecked(1);
|
||||
proProjectApplyDetail.setCheckedTotalValue(Convert.toStr(Convert.toDouble(proProjectApplyDetail.getCheckedTotalValue())+Convert.toDouble(proProjectApplyDetailCheck.getCheckValue())));
|
||||
proProjectApplyMapper.updateProProjectApplyDetail(proProjectApplyDetail);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改申请详情验收
|
||||
*
|
||||
* @param proProjectApplyDetailCheck 申请详情验收
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateProProjectApplyDetailCheck(ProProjectApplyDetailCheck proProjectApplyDetailCheck)
|
||||
{
|
||||
return proProjectApplyDetailCheckMapper.updateProProjectApplyDetailCheck(proProjectApplyDetailCheck);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除申请详情验收
|
||||
*
|
||||
* @param detailIds 需要删除的申请详情验收主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteProProjectApplyDetailCheckByDetailIds(Long[] detailIds)
|
||||
{
|
||||
return proProjectApplyDetailCheckMapper.deleteProProjectApplyDetailCheckByDetailIds(detailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除申请详情验收信息
|
||||
*
|
||||
* @param detailId 申请详情验收主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteProProjectApplyDetailCheckByDetailId(Long detailId)
|
||||
{
|
||||
return proProjectApplyDetailCheckMapper.deleteProProjectApplyDetailCheckByDetailId(detailId);
|
||||
}
|
||||
}
|
|
@ -14,6 +14,9 @@ import com.yanzhu.system.mapper.SysDictDataMapper;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.yanzhu.common.utils.StringUtils;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.yanzhu.project.domain.ProProjectApplyDetail;
|
||||
|
@ -48,6 +51,16 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService
|
|||
return proProjectApplyMapper.selectProProjectApplyById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计项目申请信息
|
||||
*
|
||||
* @param proProjectApply 项目申请
|
||||
* @return 项目申请集合
|
||||
*/
|
||||
public List<Map<String,Object>> findGroupCountByStatus(ProProjectApply proProjectApply){
|
||||
return proProjectApplyMapper.findGroupCountByStatus(proProjectApply);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目申请列表
|
||||
*
|
||||
|
@ -147,7 +160,7 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService
|
|||
*
|
||||
* @param proProjectApply 项目申请对象
|
||||
*/
|
||||
public void insertProProjectApplyDetail(ProProjectApply proProjectApply)
|
||||
private void insertProProjectApplyDetail(ProProjectApply proProjectApply)
|
||||
{
|
||||
List<ProProjectApplyDetail> proProjectApplyDetailList = proProjectApply.getProProjectApplyDetailList();
|
||||
Long id = proProjectApply.getId();
|
||||
|
@ -164,10 +177,11 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService
|
|||
if(StringUtils.isEmpty(proProjectApplyDetail.getAssetsName())){
|
||||
BaseAssetsType baseAssetsType = baseAssetsTypeMapper.selectBaseAssetsTypeById(proProjectApplyDetail.getAssetsId());
|
||||
proProjectApplyDetail.setAssetsName(baseAssetsType.getName());
|
||||
//为空时,重新查询并赋值
|
||||
if(proProjectApplyDetail.getTypeId()!=null && StringUtils.isEmpty(proProjectApplyDetail.getTypeName())){
|
||||
}
|
||||
if(Objects.nonNull(proProjectApplyDetail.getTypeId())){
|
||||
if(StringUtils.isEmpty(proProjectApplyDetail.getTypeName())){
|
||||
//资产类型
|
||||
BaseAssetsType parentAssetsType = baseAssetsTypeMapper.selectBaseAssetsTypeById(baseAssetsType.getParentId());
|
||||
BaseAssetsType parentAssetsType = baseAssetsTypeMapper.selectBaseAssetsTypeById(proProjectApplyDetail.getTypeId());
|
||||
proProjectApplyDetail.setTypeName(parentAssetsType.getName());
|
||||
}
|
||||
}
|
||||
|
@ -180,4 +194,18 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目申请
|
||||
*
|
||||
* @param proProjectApply 项目申请
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertMyProProjectApplyDetail(ProProjectApply proProjectApply){
|
||||
ProProjectApply entity = proProjectApplyMapper.selectProProjectApplyById(proProjectApply.getId());
|
||||
entity.setProProjectApplyDetailList(proProjectApply.getProProjectApplyDetailList());
|
||||
insertProProjectApplyDetail(entity);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yanzhu.project.mapper.ProProjectApplyDetailCheckMapper">
|
||||
|
||||
<resultMap type="ProProjectApplyDetailCheck" id="ProProjectApplyDetailCheckResult">
|
||||
<result property="detailId" column="detail_id" />
|
||||
<result property="checkValue" column="check_value" />
|
||||
<result property="checkPrice" column="check_price" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProProjectApplyDetailCheckVo">
|
||||
select detail_id, check_value, check_price, create_by, create_time from pro_project_apply_detail_check
|
||||
</sql>
|
||||
|
||||
<select id="selectProProjectApplyDetailCheckList" parameterType="ProProjectApplyDetailCheck" resultMap="ProProjectApplyDetailCheckResult">
|
||||
<include refid="selectProProjectApplyDetailCheckVo"/>
|
||||
<where>
|
||||
<if test="detailId != null "> and detail_id = #{detailId}</if>
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectProProjectApplyDetailCheckByDetailId" parameterType="Long" resultMap="ProProjectApplyDetailCheckResult">
|
||||
<include refid="selectProProjectApplyDetailCheckVo"/>
|
||||
where detail_id = #{detailId}
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
<insert id="insertProProjectApplyDetailCheck" parameterType="ProProjectApplyDetailCheck">
|
||||
insert into pro_project_apply_detail_check
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="detailId != null">detail_id,</if>
|
||||
<if test="checkValue != null">check_value,</if>
|
||||
<if test="checkPrice != null">check_price,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="detailId != null">#{detailId},</if>
|
||||
<if test="checkValue != null">#{checkValue},</if>
|
||||
<if test="checkPrice != null">#{checkPrice},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateProProjectApplyDetailCheck" parameterType="ProProjectApplyDetailCheck">
|
||||
update pro_project_apply_detail_check
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="checkValue != null">check_value = #{checkValue},</if>
|
||||
<if test="checkPrice != null">check_price = #{checkPrice},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
</trim>
|
||||
where detail_id = #{detailId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProProjectApplyDetailCheckByDetailId" parameterType="Long">
|
||||
delete from pro_project_apply_detail_check where detail_id = #{detailId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProProjectApplyDetailCheckByDetailIds" parameterType="String">
|
||||
delete from pro_project_apply_detail_check where detail_id in
|
||||
<foreach item="detailId" collection="array" open="(" separator="," close=")">
|
||||
#{detailId}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
|
@ -16,9 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="applyFiles" column="apply_files" />
|
||||
<result property="applyUser" column="apply_user" />
|
||||
<result property="useTime" column="use_time" />
|
||||
<result property="qrPath" column="qr_path" />
|
||||
<result property="isDel" column="is_del" />
|
||||
<result property="createByDeptName" column="createByDeptName" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createByName" column="create_by_name" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
|
@ -45,6 +47,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="useReason" column="sub_use_reason" />
|
||||
<result property="price" column="sub_price" />
|
||||
<result property="totalPrice" column="sub_total_price" />
|
||||
<result property="pushType" column="sub_push_type" />
|
||||
<result property="checkedTotalValue" column="sub_checked_total_value" />
|
||||
<result property="isChecked" column="sub_is_checked" />
|
||||
<result property="isDel" column="sub_is_del" />
|
||||
<result property="createBy" column="sub_create_by" />
|
||||
<result property="createTime" column="sub_create_time" />
|
||||
|
@ -54,33 +59,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectProProjectApplyVo">
|
||||
select id, dept_id, proj_id, proj_name, par_proj_name, apply_type, apply_status, apply_reason, apply_files, apply_user, use_time, is_del, create_by, create_time, update_by, update_time, remark from pro_project_apply
|
||||
select pa.id, pa.dept_id, sd.dept_name as createByDeptName, pa.proj_id, pa.proj_name, pa.par_proj_name, pa.apply_type, pa.apply_status, pa.apply_reason, pa.apply_files, pa.apply_user, pa.use_time, pa.qr_path, pa.is_del, pa.create_by, pa.create_time, pa.update_by, pa.update_time, pa.remark from pro_project_apply pa
|
||||
left join sys_dept sd on sd.dept_id = pa.dept_id
|
||||
</sql>
|
||||
|
||||
<select id="selectProProjectApplyList" parameterType="ProProjectApply" resultMap="ProProjectApplyResult">
|
||||
<include refid="selectProProjectApplyVo"/>
|
||||
<where>
|
||||
<if test="deptId != null "> and dept_id = #{deptId}</if>
|
||||
<if test="projId != null "> and proj_id = #{projId}</if>
|
||||
<if test="projName != null and projName != ''"> and proj_name like concat('%', #{projName}, '%')</if>
|
||||
<if test="parProjName != null and parProjName != ''"> and par_proj_name like concat('%', #{parProjName}, '%')</if>
|
||||
<if test="applyType != null and applyType != ''"> and apply_type = #{applyType}</if>
|
||||
<if test="applyStatus != null and applyStatus != ''"> and apply_status = #{applyStatus}</if>
|
||||
<if test="applyUser != null "> and apply_user = #{applyUser}</if>
|
||||
<if test="useTime != null "> and use_time = #{useTime}</if>
|
||||
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if>
|
||||
<if test="deptId != null "> and pa.dept_id = #{deptId}</if>
|
||||
<if test="projId != null "> and pa.proj_id = #{projId}</if>
|
||||
<if test="projName != null and projName != ''"> and pa.proj_name like concat('%', #{projName}, '%')</if>
|
||||
<if test="parProjName != null and parProjName != ''"> and pa.par_proj_name like concat('%', #{parProjName}, '%')</if>
|
||||
<if test="applyType != null and applyType != ''"> and pa.apply_type = #{applyType}</if>
|
||||
<if test="applyStatus != null and applyStatus != ''"> and pa.apply_status = #{applyStatus}</if>
|
||||
<if test="applyUser != null "> and pa.apply_user = #{applyUser}</if>
|
||||
<if test="useTime != null "> and pa.use_time = #{useTime}</if>
|
||||
<if test="isDel != null and isDel != ''"> and pa.is_del = #{isDel}</if>
|
||||
<if test="deptAncestors != null and deptAncestors != ''"> and find_in_set(pa.dept_id, #{deptAncestors})</if>
|
||||
</where>
|
||||
order by pa.id desc
|
||||
</select>
|
||||
|
||||
<select id="selectProProjectApplyById" parameterType="Long" resultMap="ProProjectApplyProProjectApplyDetailResult">
|
||||
select a.id, a.dept_id, a.proj_id, a.proj_name, a.par_proj_name, a.apply_type, a.apply_status, a.apply_reason, a.apply_files, a.apply_user, a.use_time, a.is_del, sd.dept_name as createByDeptName, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,
|
||||
b.id as sub_id, b.apply_id as sub_apply_id, b.super_type_key as sub_super_type_key, b.super_type_name as sub_super_type_name, b.type_id as sub_type_id, b.type_name as sub_type_name, b.assets_id as sub_assets_id, b.assets_name as sub_assets_name, b.assets_version as sub_assets_version, b.assets_unit as sub_assets_unit, b.number as sub_number, b.use_time as sub_use_time, b.use_reason as sub_use_reason, b.price as sub_price, b.total_price as sub_total_price, b.is_del as sub_is_del, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark
|
||||
select a.id, a.dept_id, a.proj_id, a.proj_name, a.par_proj_name, a.apply_type, a.apply_status, a.apply_reason, a.apply_files, a.apply_user, a.use_time, a.qr_path, a.is_del, sd.dept_name as createByDeptName, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,
|
||||
b.id as sub_id, b.apply_id as sub_apply_id, b.super_type_key as sub_super_type_key, b.super_type_name as sub_super_type_name, b.type_id as sub_type_id, b.type_name as sub_type_name, b.assets_id as sub_assets_id, b.assets_name as sub_assets_name, b.assets_version as sub_assets_version, b.assets_unit as sub_assets_unit, b.number as sub_number, b.use_time as sub_use_time, b.use_reason as sub_use_reason, b.price as sub_price, b.total_price as sub_total_price, b.push_type as sub_push_type, b.checked_total_value as sub_checked_total_value, b.is_checked as sub_is_checked, b.is_del as sub_is_del, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark
|
||||
from pro_project_apply a
|
||||
left join sys_dept sd on a.dept_id = sd.dept_id
|
||||
left join pro_project_apply_detail b on b.apply_id = a.id
|
||||
where a.id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="findGroupCountByStatus" parameterType="ProProjectApply" resultType="Map">
|
||||
select pa.apply_status as applyStatus, count(1) as total from pro_project_apply pa
|
||||
<where>
|
||||
pa.apply_status != '1'
|
||||
<if test="deptId != null "> and pa.dept_id = #{deptId}</if>
|
||||
<if test="projId != null "> and pa.proj_id = #{projId}</if>
|
||||
<if test="projName != null and projName != ''"> and pa.proj_name like concat('%', #{projName}, '%')</if>
|
||||
<if test="parProjName != null and parProjName != ''"> and pa.par_proj_name like concat('%', #{parProjName}, '%')</if>
|
||||
<if test="applyType != null and applyType != ''"> and pa.apply_type = #{applyType}</if>
|
||||
<if test="applyUser != null "> and pa.apply_user = #{applyUser}</if>
|
||||
<if test="useTime != null "> and pa.use_time = #{useTime}</if>
|
||||
<if test="isDel != null and isDel != ''"> and pa.is_del = #{isDel}</if>
|
||||
<if test="deptAncestors != null and deptAncestors != ''"> and find_in_set(pa.dept_id, #{deptAncestors})</if>
|
||||
</where>
|
||||
group by pa.apply_status
|
||||
</select>
|
||||
|
||||
<insert id="insertProProjectApply" parameterType="ProProjectApply" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into pro_project_apply
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
@ -94,6 +119,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="applyFiles != null">apply_files,</if>
|
||||
<if test="applyUser != null">apply_user,</if>
|
||||
<if test="useTime != null">use_time,</if>
|
||||
<if test="qrPath != null">qr_path,</if>
|
||||
<if test="isDel != null">is_del,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
|
@ -112,6 +138,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="applyFiles != null">#{applyFiles},</if>
|
||||
<if test="applyUser != null">#{applyUser},</if>
|
||||
<if test="useTime != null">#{useTime},</if>
|
||||
<if test="qrPath != null">#{qrPath},</if>
|
||||
<if test="isDel != null">#{isDel},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
|
@ -134,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="applyFiles != null">apply_files = #{applyFiles},</if>
|
||||
<if test="applyUser != null">apply_user = #{applyUser},</if>
|
||||
<if test="useTime != null">use_time = #{useTime},</if>
|
||||
<if test="qrPath != null">qr_path = #{qrPath},</if>
|
||||
<if test="isDel != null">is_del = #{isDel},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
|
@ -167,9 +195,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</delete>
|
||||
|
||||
<insert id="batchProProjectApplyDetail">
|
||||
insert into pro_project_apply_detail( id, apply_id, super_type_key, super_type_name, type_id, type_name, assets_id, assets_name, assets_unit, assets_version, number, use_time, use_reason, price, total_price, is_del, create_by, create_time, update_by, update_time, remark) values
|
||||
insert into pro_project_apply_detail( id, apply_id, super_type_key, super_type_name, type_id, type_name, assets_id, assets_name, assets_unit, assets_version, number, use_time, use_reason, price, total_price, push_type, is_checked, is_del, create_by, create_time, update_by, update_time, remark) values
|
||||
<foreach item="item" index="index" collection="list" separator=",">
|
||||
( #{item.id}, #{item.applyId}, #{item.superTypeKey}, #{item.superTypeName}, #{item.typeId}, #{item.typeName}, #{item.assetsId}, #{item.assetsName}, #{item.assetsVersion}, #{item.assetsUnit}, #{item.number}, #{item.useTime}, #{item.useReason}, #{item.price}, #{item.totalPrice}, #{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark})
|
||||
( #{item.id}, #{item.applyId}, #{item.superTypeKey}, #{item.superTypeName}, #{item.typeId}, #{item.typeName}, #{item.assetsId}, #{item.assetsName}, #{item.assetsUnit}, #{item.assetsVersion}, #{item.number}, #{item.useTime}, #{item.useReason}, #{item.price}, #{item.totalPrice}, #{item.pushType}, #{item.isChecked}, #{item.isDel}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="selectProProjectApplyDetailById" parameterType="Long" resultMap="ProProjectApplyDetailResult">
|
||||
select * from pro_project_apply_detail where id = #{id}
|
||||
</select>
|
||||
|
||||
<update id="updateProProjectApplyDetail" parameterType="ProProjectApplyDetail">
|
||||
update pro_project_apply_detail
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="checkedTotalValue != null">checked_total_value = #{checkedTotalValue},</if>
|
||||
<if test="isChecked != null">is_checked = #{isChecked},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -117,4 +117,12 @@ public interface SysDeptMapper
|
|||
public int deleteDeptById(Long deptId);
|
||||
|
||||
public int deleteDeepDeptById(Long deptId);
|
||||
|
||||
/**
|
||||
* 根据部门ID查询信息
|
||||
*
|
||||
* @param ids 部门ID
|
||||
* @return 部门信息
|
||||
*/
|
||||
public List<SysDept> selectParentDeptByIds(List<Long> ids);
|
||||
}
|
||||
|
|
|
@ -150,4 +150,12 @@ public interface ISysDeptService
|
|||
* @return
|
||||
*/
|
||||
public int inertSubProject(SysDept dept);
|
||||
|
||||
/**
|
||||
* 根据部门ID查询信息
|
||||
*
|
||||
* @param ids 部门ID
|
||||
* @return 部门信息
|
||||
*/
|
||||
public List<SysDept> selectParentDeptByIds(List<Long> ids);
|
||||
}
|
||||
|
|
|
@ -413,5 +413,14 @@ public class SysDeptServiceImpl implements ISysDeptService
|
|||
return deptMapper.deleteDeepDeptById(deptId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据部门ID查询信息
|
||||
*
|
||||
* @param ids 部门ID
|
||||
* @return 部门信息
|
||||
*/
|
||||
@Override
|
||||
public List<SysDept> selectParentDeptByIds(List<Long> ids){
|
||||
return deptMapper.selectParentDeptByIds(ids);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,16 +53,11 @@
|
|||
<if test="assigneeId != null and assigneeId != '' and roleIds !=null and roleIds.size()>0">
|
||||
AND (fa.ASSIGNEE_ = #{assigneeId}
|
||||
OR (
|
||||
fa.ASSIGNEE_ IS NULL
|
||||
AND (
|
||||
fa.USER_ID_ = #{assigneeId}
|
||||
OR (
|
||||
fa.GROUP_ID_ IN
|
||||
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
|
||||
#{roleId}
|
||||
</foreach>
|
||||
)
|
||||
)
|
||||
fa.ASSIGNEE_ IS NULL
|
||||
AND fa.GROUP_ID_ IN
|
||||
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
|
||||
#{roleId}
|
||||
</foreach>
|
||||
)
|
||||
)
|
||||
</if>
|
||||
|
|
|
@ -170,4 +170,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<delete id="deleteDeepDeptById" parameterType="Long">
|
||||
update sys_dept set del_flag = '2' where parent_id =#{deptId} or dept_id = #{deptId}
|
||||
</delete>
|
||||
|
||||
<select id="selectParentDeptByIds" parameterType="list" resultMap="SysDeptResult">
|
||||
select * from sys_dept where status = 0 and del_flag = '0' and level=300
|
||||
and dept_id in
|
||||
<foreach collection="ids" item="item" index="index" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request'
|
|||
|
||||
NProgress.configure({ showSpinner: false })
|
||||
|
||||
const whiteList = ['/login', '/register']
|
||||
const whiteList = ['/login', '/register', "/ApplyDetail"]
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
NProgress.start()
|
||||
|
|
|
@ -61,6 +61,11 @@ export const constantRoutes = [
|
|||
component: () => import('@/views/error/401'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/ApplyDetail',
|
||||
component: () => import('@/views/ApplyDetail/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '',
|
||||
component: Layout,
|
||||
|
|
|
@ -0,0 +1,234 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="inspect_max">
|
||||
<div class="inspect_list" v-if="dataList.length > 0">
|
||||
<div class="inspect_for" v-for="(item, index) in dataList">
|
||||
<div class="inspect_for_bgd">
|
||||
<div class="inspect_list_title">
|
||||
<div class="inspect_list_title_label inspect_list_title_width">
|
||||
<div class="inspect_list_title_number">
|
||||
{{ index < 9 ? "0" + (index + 1) : index + 1 }}
|
||||
</div>
|
||||
<div class="module_title module_title_flex inspect_list_title_text">
|
||||
{{ dataInfo.useTime }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inspect_shtg">
|
||||
<div class="inspect_list_info_details">
|
||||
<div class="inspect_list_info_data">
|
||||
<div class="inspect_list_info_data_prop">
|
||||
采购项目:{{ dataInfo.projName }}
|
||||
</div>
|
||||
<div class="inspect_list_info_data_prop">
|
||||
采购内容:{{ item.typeName + " > " + item.assetsName }}
|
||||
</div>
|
||||
<div class="inspect_list_info_data_prop">
|
||||
采购数量:{{ item.number + " " + item.assetsUnit }}
|
||||
</div>
|
||||
<div class="inspect_list_info_data_prop" v-if="item.assetsVersion">
|
||||
规格型号:{{ item.assetsVersion }}
|
||||
</div>
|
||||
<div class="inspect_list_info_data_prop" v-if="item.checkedTotalValue">
|
||||
验收数量:{{ item.checkedTotalValue }}
|
||||
<el-tag size="small">{{ item.assetsUnit }}</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inspect_list_info_position">使用原因:{{ item.useReason }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="dataList.length == 0">
|
||||
<div style="padding-top: 70px; text-align: -webkit-center">
|
||||
<el-image
|
||||
src="https://szgcwx.jhncidg.com/staticFiles/nodata.png"
|
||||
style="width: 200px; height: 135px"
|
||||
></el-image>
|
||||
<div style="color: #a5abbb; margin-top: 20px">暂 无 投 诉 信 息</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getProjectApply } from "@/api/project/projectApply";
|
||||
export default {
|
||||
name: "ApplyDetail",
|
||||
data() {
|
||||
return {
|
||||
dataInfo: {},
|
||||
dataList: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
let queryParams = this.$route.query; // 获取查询参数对象
|
||||
let applyId = queryParams.applyId;
|
||||
getProjectApply(applyId).then((response) => {
|
||||
this.dataInfo = response.data;
|
||||
this.dataList = response.data.proProjectApplyDetailList || [];
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scope>
|
||||
.app-container {
|
||||
height: 100%;
|
||||
background-image: url("https://szgc.jhncidg.com/profile/static/bg.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.el-form--label-top .el-form-item__label {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.el-input__suffix {
|
||||
right: 10px !important;
|
||||
}
|
||||
.el-alert {
|
||||
display: flex !important;
|
||||
}
|
||||
.el-alert--info.is-light {
|
||||
background: cornflowerblue !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
.el-alert--info .el-alert__description {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
.el-select-dropdown {
|
||||
left: 20px !important;
|
||||
right: 20px !important;
|
||||
}
|
||||
.sel {
|
||||
width: 100%;
|
||||
}
|
||||
.el-alert__closebtn {
|
||||
color: #f3cd46 !important;
|
||||
font-weight: 900 !important;
|
||||
}
|
||||
.el-result__title {
|
||||
font-weight: 900 !important;
|
||||
}
|
||||
.el-result__extra {
|
||||
width: 100% !important;
|
||||
}
|
||||
.inspect_max {
|
||||
padding: 0;
|
||||
}
|
||||
.inspect_list {
|
||||
padding: 5px 0;
|
||||
}
|
||||
.inspect_for {
|
||||
padding: 10px 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
.inspect_for_bgd {
|
||||
background: #d3e0ed;
|
||||
padding: 0 15px;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
.inspect_list_title {
|
||||
border-bottom: 1px solid #323b86;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-weight: 900;
|
||||
}
|
||||
.inspect_list_title_label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: calc(100% - 75px);
|
||||
}
|
||||
.inspect_list_title_width {
|
||||
width: 100%;
|
||||
}
|
||||
.inspect_list_title_number {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-bottom: 1px solid #000000;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
color: #000000;
|
||||
}
|
||||
.inspect_list_title_text {
|
||||
width: calc(100% - 40px);
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
.module_title_flex {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.module_title {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
padding-left: 20px;
|
||||
background: url("https://szgcwx.jhncidg.com/staticFiles/images/lw_8.png") no-repeat
|
||||
left/17px;
|
||||
}
|
||||
.inspect_shtg {
|
||||
padding: 15px 3px;
|
||||
background-size: 80px 80px !important;
|
||||
background: url("https://szgcwx.jhncidg.com/staticFiles/images/shtg.png") no-repeat top
|
||||
10px right;
|
||||
}
|
||||
.inspect_list_info_details {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.inspect_list_info_data {
|
||||
width: 100%;
|
||||
}
|
||||
.inspect_list_info_data_prop {
|
||||
padding: 5px 0;
|
||||
word-break: break-all;
|
||||
}
|
||||
.inspect_list_info_position {
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
.button-active {
|
||||
color: #ffffff;
|
||||
width: 90% !important;
|
||||
background-color: #1890ff !important;
|
||||
border-color: #1890ff !important;
|
||||
}
|
||||
.button-dis {
|
||||
color: #000000;
|
||||
width: 90% !important;
|
||||
background-color: #e6ebf5 !important;
|
||||
border-color: #e6ebf5 !important;
|
||||
}
|
||||
.block {
|
||||
border-radius: 5px;
|
||||
}
|
||||
.el-timeline {
|
||||
padding-left: 5px !important;
|
||||
}
|
||||
.el-timeline-item__wrapper {
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
.el-timeline-item__content {
|
||||
font-weight: 900;
|
||||
}
|
||||
.el-card {
|
||||
border: 0px !important;
|
||||
background-color: #d3e0ed !important;
|
||||
}
|
||||
.el-card__body {
|
||||
border: 0px !important;
|
||||
padding: 0px !important;
|
||||
padding-right: 10px !important;
|
||||
font-weight: 500 !important;
|
||||
}
|
||||
.el-image {
|
||||
margin-right: 6px !important;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue