zhangnaisong
2024-01-24 c3a37601a4867103447b6a2a57ae0227d1512109
位置共享修改提交
已添加6个文件
684 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/domain/ArdAppApplication.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
package com.ruoyi.app.application.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
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.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.app.application.domain.ArdAppApplication;
import com.ruoyi.app.application.service.IArdAppApplicationService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * å•兵端申请查看指挥端位置或三一车辆位置Controller
 *
 * @author ard
 * @date 2024-01-23
 */
@RestController
@RequestMapping("/app/application")
public class ArdAppApplicationController extends BaseController
{
    @Autowired
    private IArdAppApplicationService ardAppApplicationService;
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置列表
     */
    @PreAuthorize("@ss.hasPermi('app:application:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdAppApplication ardAppApplication)
    {
        startPage();
        List<ArdAppApplication> list = ardAppApplicationService.selectArdAppApplicationList(ardAppApplication);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºå•兵端申请查看指挥端位置或三一车辆位置列表
     */
    @PreAuthorize("@ss.hasPermi('app:application:export')")
    @Log(title = "单兵端申请查看指挥端位置或三一车辆位置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdAppApplication ardAppApplication)
    {
        List<ArdAppApplication> list = ardAppApplicationService.selectArdAppApplicationList(ardAppApplication);
        ExcelUtil<ArdAppApplication> util = new ExcelUtil<ArdAppApplication>(ArdAppApplication.class);
        util.exportExcel(response, list, "单兵端申请查看指挥端位置或三一车辆位置数据");
    }
    /**
     * èŽ·å–å•å…µç«¯ç”³è¯·æŸ¥çœ‹æŒ‡æŒ¥ç«¯ä½ç½®æˆ–ä¸‰ä¸€è½¦è¾†ä½ç½®è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('app:application:query')")
    @GetMapping(value = "/{applicationId}")
    public AjaxResult getInfo(@PathVariable("applicationId") String applicationId)
    {
        return success(ardAppApplicationService.selectArdAppApplicationByApplicationId(applicationId));
    }
    /**
     * æ–°å¢žå•兵端申请查看指挥端位置或三一车辆位置
     */
    @PreAuthorize("@ss.hasPermi('app:application:add')")
    @Log(title = "单兵端申请查看指挥端位置或三一车辆位置", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ArdAppApplication ardAppApplication)
    {
        return toAjax(ardAppApplicationService.insertArdAppApplication(ardAppApplication));
    }
    /**
     * ä¿®æ”¹å•兵端申请查看指挥端位置或三一车辆位置
     */
    @PreAuthorize("@ss.hasPermi('app:application:edit')")
    @Log(title = "单兵端申请查看指挥端位置或三一车辆位置", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdAppApplication ardAppApplication)
    {
        return toAjax(ardAppApplicationService.updateArdAppApplication(ardAppApplication));
    }
    /**
     * åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置
     */
    @PreAuthorize("@ss.hasPermi('app:application:remove')")
    @Log(title = "单兵端申请查看指挥端位置或三一车辆位置", businessType = BusinessType.DELETE)
    @DeleteMapping("/{applicationIds}")
    public AjaxResult remove(@PathVariable String[] applicationIds)
    {
        return toAjax(ardAppApplicationService.deleteArdAppApplicationByApplicationIds(applicationIds));
    }
    @PostMapping("/sendCheckCommandersPosition")
    @ApiOperation("发起查看指挥端位置")
    public AjaxResult sendCheckCommandersPosition(@RequestBody Map<String,Object> para) {
        String usersId = SecurityUtils.getUserId();
        try{
            int result = ardAppApplicationService.sendCheckCommandersPosition(usersId,para);
            return result > 0 ? AjaxResult.success() : AjaxResult.error();
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
    @PostMapping("/sendCheckSYCarsPosition")
    @ApiOperation("发起查看车辆位置")
    public AjaxResult sendCheckSYCarsPosition(@RequestBody Map<String,Object> para) {
        String usersId = SecurityUtils.getUserId();
        try{
            int result = ardAppApplicationService.sendCheckSYCarsPosition(usersId,para);
            return result > 0 ? AjaxResult.success() : AjaxResult.error();
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
    @GetMapping("/getCheckPosition")
    @ApiOperation("指挥端查看位置申请")
    public AjaxResult getCheckPosition() {
        String usersId = SecurityUtils.getUserId();
        try{
            Map<String,List<Map<String,Object>>> result = ardAppApplicationService.getCheckPosition(usersId);
            return AjaxResult.success(result);
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
}
ard-work/src/main/java/com/ruoyi/app/application/domain/ArdAppApplication.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
package com.ruoyi.app.application.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * å•兵端申请查看指挥端位置或三一车辆位置对象 ard_app_application
 *
 * @author ard
 * @date 2024-01-23
 */
public class ArdAppApplication extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ç”³è¯·ä¸»é”® */
    @Excel(name = "申请主键")
    private String applicationId;
    /** æŒ‡æŒ¥ç«¯æˆ–PC端主键 */
    @Excel(name = "指挥端或PC端主键")
    private String commanderId;
    /** å•兵端主键 */
    @Excel(name = "单兵端主键")
    private String soilderId;
    /** ç”³è¯·åŽŸå›  */
    @Excel(name = "申请原因")
    private String reason;
    /** ç”³è¯·ç±»åž‹ */
    @Excel(name = "申请类型")
    private String applicationType;
    /** å®¡æ‰¹åŒæ„æ—¶é—´æˆ³ */
    @Excel(name = "审批同意时间戳")
    private String begin;
    /** å®¡æ‰¹çŠ¶æ€ */
    @Excel(name = "审批状态")
    private String state;
    public void setApplicationId(String applicationId)
    {
        this.applicationId = applicationId;
    }
    public String getApplicationId()
    {
        return applicationId;
    }
    public void setCommanderId(String commanderId)
    {
        this.commanderId = commanderId;
    }
    public String getCommanderId()
    {
        return commanderId;
    }
    public void setSoilderId(String soilderId)
    {
        this.soilderId = soilderId;
    }
    public String getSoilderId()
    {
        return soilderId;
    }
    public void setReason(String reason)
    {
        this.reason = reason;
    }
    public String getReason()
    {
        return reason;
    }
    public void setApplicationType(String applicationType)
    {
        this.applicationType = applicationType;
    }
    public String getApplicationType()
    {
        return applicationType;
    }
    public void setBegin(String begin)
    {
        this.begin = begin;
    }
    public String getBegin()
    {
        return begin;
    }
    public void setState(String state)
    {
        this.state = state;
    }
    public String getState()
    {
        return state;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("applicationId", getApplicationId())
            .append("commanderId", getCommanderId())
            .append("soilderId", getSoilderId())
            .append("reason", getReason())
            .append("applicationType", getApplicationType())
            .append("begin", getBegin())
            .append("state", getState())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.ruoyi.app.application.mapper;
import java.util.List;
import java.util.Map;
import com.ruoyi.app.application.domain.ArdAppApplication;
import org.apache.ibatis.annotations.Param;
/**
 * å•兵端申请查看指挥端位置或三一车辆位置Mapper接口
 *
 * @author ard
 * @date 2024-01-23
 */
public interface ArdAppApplicationMapper
{
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationId å•兵端申请查看指挥端位置或三一车辆位置主键
     * @return å•兵端申请查看指挥端位置或三一车辆位置
     */
    public ArdAppApplication selectArdAppApplicationByApplicationId(String applicationId);
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置列表
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return å•兵端申请查看指挥端位置或三一车辆位置集合
     */
    public List<ArdAppApplication> selectArdAppApplicationList(ArdAppApplication ardAppApplication);
    /**
     * æ–°å¢žå•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return ç»“æžœ
     */
    public int insertArdAppApplication(ArdAppApplication ardAppApplication);
    /**
     * ä¿®æ”¹å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return ç»“æžœ
     */
    public int updateArdAppApplication(ArdAppApplication ardAppApplication);
    /**
     * åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationId å•兵端申请查看指挥端位置或三一车辆位置主键
     * @return ç»“æžœ
     */
    public int deleteArdAppApplicationByApplicationId(String applicationId);
    /**
     * æ‰¹é‡åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationIds éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdAppApplicationByApplicationIds(String[] applicationIds);
    public int insertArdAppApplicationList(@Param("ardAppApplicationList")List<ArdAppApplication> ardAppApplicationList);
    public int updateArdAppApplicationByCommanderIdAndSoilderIdAndType(ArdAppApplication ardAppApplication);
    public List<Map<String,Object>> selectArdAppApplicationByCommanderId(String usersId);
}
ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.ruoyi.app.application.service;
import java.util.List;
import java.util.Map;
import com.ruoyi.app.application.domain.ArdAppApplication;
/**
 * å•兵端申请查看指挥端位置或三一车辆位置Service接口
 *
 * @author ard
 * @date 2024-01-23
 */
public interface IArdAppApplicationService
{
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationId å•兵端申请查看指挥端位置或三一车辆位置主键
     * @return å•兵端申请查看指挥端位置或三一车辆位置
     */
    public ArdAppApplication selectArdAppApplicationByApplicationId(String applicationId);
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置列表
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return å•兵端申请查看指挥端位置或三一车辆位置集合
     */
    public List<ArdAppApplication> selectArdAppApplicationList(ArdAppApplication ardAppApplication);
    /**
     * æ–°å¢žå•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return ç»“æžœ
     */
    public int insertArdAppApplication(ArdAppApplication ardAppApplication);
    /**
     * ä¿®æ”¹å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return ç»“æžœ
     */
    public int updateArdAppApplication(ArdAppApplication ardAppApplication);
    /**
     * æ‰¹é‡åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationIds éœ€è¦åˆ é™¤çš„单兵端申请查看指挥端位置或三一车辆位置主键集合
     * @return ç»“æžœ
     */
    public int deleteArdAppApplicationByApplicationIds(String[] applicationIds);
    /**
     * åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置信息
     *
     * @param applicationId å•兵端申请查看指挥端位置或三一车辆位置主键
     * @return ç»“æžœ
     */
    public int deleteArdAppApplicationByApplicationId(String applicationId);
    public int sendCheckCommandersPosition(String usersId, Map<String,Object> para);
    public int sendCheckSYCarsPosition(String usersId, Map<String,Object> para);
    public Map<String,List<Map<String,Object>>> getCheckPosition(String usersId);
}
ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
package com.ruoyi.app.application.service.impl;
import java.util.HashMap;
import java.util.List;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.app.application.mapper.ArdAppApplicationMapper;
import com.ruoyi.app.application.domain.ArdAppApplication;
import com.ruoyi.app.application.service.IArdAppApplicationService;
import javax.annotation.Resource;
/**
 * å•兵端申请查看指挥端位置或三一车辆位置Service业务层处理
 *
 * @author ard
 * @date 2024-01-23
 */
@Service
public class ArdAppApplicationServiceImpl implements IArdAppApplicationService {
    @Resource
    private ArdAppApplicationMapper ardAppApplicationMapper;
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationId å•兵端申请查看指挥端位置或三一车辆位置主键
     * @return å•兵端申请查看指挥端位置或三一车辆位置
     */
    @Override
    public ArdAppApplication selectArdAppApplicationByApplicationId(String applicationId) {
        return ardAppApplicationMapper.selectArdAppApplicationByApplicationId(applicationId);
    }
    /**
     * æŸ¥è¯¢å•兵端申请查看指挥端位置或三一车辆位置列表
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return å•兵端申请查看指挥端位置或三一车辆位置
     */
    @Override
    public List<ArdAppApplication> selectArdAppApplicationList(ArdAppApplication ardAppApplication) {
        return ardAppApplicationMapper.selectArdAppApplicationList(ardAppApplication);
    }
    /**
     * æ–°å¢žå•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return ç»“æžœ
     */
    @Override
    public int insertArdAppApplication(ArdAppApplication ardAppApplication) {
            return ardAppApplicationMapper.insertArdAppApplication(ardAppApplication);
    }
    /**
     * ä¿®æ”¹å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param ardAppApplication å•兵端申请查看指挥端位置或三一车辆位置
     * @return ç»“æžœ
     */
    @Override
    public int updateArdAppApplication(ArdAppApplication ardAppApplication) {
        return ardAppApplicationMapper.updateArdAppApplication(ardAppApplication);
    }
    /**
     * æ‰¹é‡åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置
     *
     * @param applicationIds éœ€è¦åˆ é™¤çš„单兵端申请查看指挥端位置或三一车辆位置主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdAppApplicationByApplicationIds(String[] applicationIds) {
        return ardAppApplicationMapper.deleteArdAppApplicationByApplicationIds(applicationIds);
    }
    /**
     * åˆ é™¤å•兵端申请查看指挥端位置或三一车辆位置信息
     *
     * @param applicationId å•兵端申请查看指挥端位置或三一车辆位置主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdAppApplicationByApplicationId(String applicationId) {
        return ardAppApplicationMapper.deleteArdAppApplicationByApplicationId(applicationId);
    }
    @Override
    public int sendCheckCommandersPosition(String usersId, Map<String, Object> para) {
        String reason = (String) para.get("reason");
        List<String> usersIdList = (List<String>) para.get("usersIdList");
        int result = 0;
        for(String commanderId : usersIdList){
            ArdAppApplication ardAppApplication = new ArdAppApplication();
            ardAppApplication.setCommanderId(commanderId);
            ardAppApplication.setSoilderId(usersId);
            ardAppApplication.setReason(reason);
            ardAppApplication.setApplicationType("Commander");
            ardAppApplication.setBegin("");
            ardAppApplication.setState("0");
            int resultSingle = ardAppApplicationMapper.updateArdAppApplicationByCommanderIdAndSoilderIdAndType(ardAppApplication);
            result = result + resultSingle;
            if(resultSingle == 0){
                ardAppApplication.setApplicationId(IdUtils.simpleUUID());
                resultSingle = ardAppApplicationMapper.insertArdAppApplication(ardAppApplication);
                result = result + resultSingle;
            }
        }
        return result;
    }
    @Override
    public int sendCheckSYCarsPosition(String usersId, Map<String, Object> para) {
        String reason = (String) para.get("reason");
        List<String> usersIdList = (List<String>) para.get("usersIdList");
        int result = 0;
        for(String commanderId : usersIdList){
            ArdAppApplication ardAppApplication = new ArdAppApplication();
            ardAppApplication.setCommanderId(commanderId);
            ardAppApplication.setSoilderId(usersId);
            ardAppApplication.setReason(reason);
            ardAppApplication.setApplicationType("SYCar");
            ardAppApplication.setBegin("");
            ardAppApplication.setState("0");
            int resultSingle = ardAppApplicationMapper.updateArdAppApplicationByCommanderIdAndSoilderIdAndType(ardAppApplication);
            result = result + resultSingle;
            if(resultSingle == 0){
                ardAppApplication.setApplicationId(IdUtils.simpleUUID());
                resultSingle = ardAppApplicationMapper.insertArdAppApplication(ardAppApplication);
                result = result + resultSingle;
            }
        }
        return result;
    }
    @Override
    public Map<String, List<Map<String, Object>>> getCheckPosition(String usersId) {
        Map<String, List<Map<String, Object>>> result = new HashMap();
        //查看指挥端位置申请
        List<Map<String,Object>> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationByCommanderId(usersId);
        List<Map<String, Object>> resultCommanderPosition = new ArrayList();
        for(Map<String, Object> map : ardAppApplicationList){
            if(((String)map.get("applicationType")).equals("Commander")){
                resultCommanderPosition.add(map);
            }
        }
        //查看车辆位置申请
        List<Map<String, Object>> resultSYCarsPosition = new ArrayList();
        for(Map<String, Object> map : ardAppApplicationList){
            if(((String)map.get("applicationType")).equals("SYCar")){
                resultSYCarsPosition.add(map);
            }
        }
        result.put("commander",resultCommanderPosition);
        result.put("SYCars",resultSYCarsPosition);
        return result;
    }
}
ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
<?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.ruoyi.app.application.mapper.ArdAppApplicationMapper">
    <resultMap type="ArdAppApplication" id="ArdAppApplicationResult">
        <result property="applicationId"    column="application_id"    />
        <result property="commanderId"    column="commander_id"    />
        <result property="soilderId"    column="soilder_id"    />
        <result property="reason"    column="reason"    />
        <result property="applicationType"    column="application_type"    />
        <result property="begin"    column="begin"    />
        <result property="state"    column="state"    />
    </resultMap>
    <sql id="selectArdAppApplicationVo">
        select application_id, commander_id, soilder_id, reason, application_type, begin, state from ard_app_application
    </sql>
    <select id="selectArdAppApplicationList" parameterType="ArdAppApplication" resultMap="ArdAppApplicationResult">
        <include refid="selectArdAppApplicationVo"/>
        <where>
            <if test="applicationId != null  and applicationId != ''"> and application_id = #{applicationId}</if>
            <if test="commanderId != null  and commanderId != ''"> and commander_id = #{commanderId}</if>
            <if test="soilderId != null  and soilderId != ''"> and soilder_id = #{soilderId}</if>
            <if test="reason != null  and reason != ''"> and reason = #{reason}</if>
            <if test="applicationType != null  and applicationType != ''"> and application_type = #{applicationType}</if>
            <if test="begin != null  and begin != ''"> and begin = #{begin}</if>
            <if test="state != null  and state != ''"> and state = #{state}</if>
        </where>
    </select>
    <select id="selectArdAppApplicationByApplicationId" parameterType="String" resultMap="ArdAppApplicationResult">
        <include refid="selectArdAppApplicationVo"/>
        where application_id = #{applicationId}
    </select>
    <insert id="insertArdAppApplication" parameterType="ArdAppApplication">
        insert into ard_app_application
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="applicationId != null">application_id,</if>
            <if test="commanderId != null">commander_id,</if>
            <if test="soilderId != null">soilder_id,</if>
            <if test="reason != null">reason,</if>
            <if test="applicationType != null">application_type,</if>
            <if test="begin != null">begin,</if>
            <if test="state != null">state,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="applicationId != null">#{applicationId},</if>
            <if test="commanderId != null">#{commanderId},</if>
            <if test="soilderId != null">#{soilderId},</if>
            <if test="reason != null">#{reason},</if>
            <if test="applicationType != null">#{applicationType},</if>
            <if test="begin != null">#{begin},</if>
            <if test="state != null">#{state},</if>
         </trim>
    </insert>
    <update id="updateArdAppApplication" parameterType="ArdAppApplication">
        update ard_app_application
        <trim prefix="SET" suffixOverrides=",">
            <if test="commanderId != null">commander_id = #{commanderId},</if>
            <if test="soilderId != null">soilder_id = #{soilderId},</if>
            <if test="reason != null">reason = #{reason},</if>
            <if test="applicationType != null">application_type = #{applicationType},</if>
            <if test="begin != null">begin = #{begin},</if>
            <if test="state != null">state = #{state},</if>
        </trim>
        where application_id = #{applicationId}
    </update>
    <delete id="deleteArdAppApplicationByApplicationId" parameterType="String">
        delete from ard_app_application where application_id = #{applicationId}
    </delete>
    <delete id="deleteArdAppApplicationByApplicationIds" parameterType="String">
        delete from ard_app_application where application_id in
        <foreach item="applicationId" collection="array" open="(" separator="," close=")">
            #{applicationId}
        </foreach>
    </delete>
    <insert id="insertArdAppApplicationList" parameterType="com.ruoyi.app.application.domain.ArdAppApplication" >
        insert into ard_app_application (application_id,commander_id,soilder_id,
        reason,application_type,begin,state)
        values
        <foreach collection ="ardAppApplicationList" item="ardAppApplication" separator =",">
            (#{ardAppApplication.application_id},#{ardAppApplication.commander_id},#{ardAppApplication.soilder_id},
            #{ardAppApplication.reason},#{ardAppApplication.application_type},#{ardAppApplication.begin},#{ardAppApplication.state})
        </foreach >
    </insert>
    <update id="updateArdAppApplicationByCommanderIdAndSoilderIdAndType" parameterType="com.ruoyi.app.application.domain.ArdAppApplication">
        update ard_app_application set reason = #{reason},begin = #{begin},state = #{state}
        where commander_id = #{commanderId} and soilder_id = #{soilderId} and application_type = #{applicationType}
    </update>
    <select id="selectArdAppApplicationByCommanderId" parameterType="java.lang.String" resultType="java.util.Map">
        select aaa.soilder_id as "soilderId",aaa.commander_id as "commanderId",
        aaa.reason,aaa.begin,aaa.state,aaa.application_type as "applicationType",
        su.user_name as "userName",su.nick_name as "nickName" from ard_app_application aaa
        inner join sys_user su on aaa.soilder_id = su.user_id
        where commander_id = #{usersId} and state = '0'
    </select>
</mapper>