栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

前端C# + 后端java 实现批量更新

Java 更新时间:发布时间: 百科书网 趣学号
前端C# + 后端java 实现批量更新

前端:

 #region 函数-判定合格不合格批量合格
        private RespReturnDataList judge()
        {
            RespReturnDataList result = new RespReturnDataList();
            List list = new List();
            try
            {
                int checkedRows = 0;
                int endIndex = detailGrid.Rows;
                for (int i = 1; i < endIndex; i++)
                {
                    if (detailGrid.Cell(i, 2).Text == "1")
                    {
                        checkedRows++;
                        if (detailGrid.Cell(i, 8).Text.Equals("待检验"))
                        {
                            //EBoardEntity 不能写在循环外,否则每次对eBoardList添加数据都会更新上一次写入的数据,导致更新时只更新最后一条
                            EBoardEntity eBoard = new EBoardEntity();
                            eBoard.id = detailGrid.Cell(i, 1).Text.ToString();
                            eBoard.checkStatus = "2";
                            eBoard.checkUser = "获取当前检验员";
                            list.Add(eBoard);
                        }
                    }
                }
                if (checkedRows != 0)
                {
                    if (list.Count>0 && list.Count==checkedRows)
                    {
                        result.dataList = list;
                        result.flag = "1";
                    }
                    else
                    {
                        result.flag = "0";
                        result.errorMessage = "选中数据状态不全为待检验";
                    }
                }
                else
                {
                    result.flag = "0";
                    result.errorMessage = "未选中任何行";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return result;
        }
        #endregion

        #region 按钮-合格
        private void tsb_Qualified_Click(object sender, EventArgs e)
        {
            try
            {
                RespReturnDataList resultMain = this.judge();
                if (resultMain.flag == "1")
                {
                    //发起请求
                    ServiceClass service = new ServiceClass();
                    string url = "http://localhost:8017eBoard/qualified";
                    string a = ConvertbaseTools.FromEntitylistToJson(resultMain.dataList);
                    RespReturnOptFlag result = service.CallRestfulPost(url, a, "POST");
                    if (!result.flag.Equals("1"))
                    {
                        throw new Exception(result.errorMessage);
                    }
                    this.dataListLoad(); 
                }
                else
                {
                    MessageBox.Show(resultMain.errorMessage, "合格", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
                
        }
        #endregion

记录:在这里遇到了一个问题,报错未将引用对象设置到引用实例经过排查后发现是for遍历问题,detailGrid.Rows比数据多了一行,所以在detailGrid.Cell(i, 2)取了不存在的行,所以要注意循环终止条件。

后端:
Controller:

    @ResponseBody
    @RequestMapping(value = "/qualified",method = RequestMethod.POST)
    public ReqReturnOptFlag qualified(@RequestBody List eBoardEntityList) {
        ReqReturnOptFlag jsonResult = new ReqReturnOptFlag();
        try {
            eBoardService.qualified(eBoardEntityList);
            jsonResult.setFlag(ReqReturnOptFlag.SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            jsonResult.setFlag(ReqReturnOptFlag.ERROR);
            jsonResult.setErrorMessage(e.getMessage());
        }
        return jsonResult;
    }

Mapper:

@Mapper
@Component
public interface EBoardMapper extends baseMapper {
    List select(EBoardEntity eBoardEntity);
    List selectimport(EBoardEntity eBoardEntity);
    void qualified(@Param("eBoardEntityList") List eBoardEntityList);
}

Mapping:


        update SM_AFTERSALE_EBOARD
        
            
                
                    
                        when (EBOARD_ID=#{i.id}) then #{i.checkStatus}
                    
                
            
            
                
                    
                        when (EBOARD_ID=#{i.id}) then #{i.checkUser}
                    
                
            
        
        where
        
            (EBOARD_ID =#{i.id})
        
    

注意:Mapping里的collection="eBoardEntityList"必须要在Mapper接口为相应参数加上@Param(“eBoardEntityList”)注解

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/294935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号