diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java new file mode 100644 index 00000000..8fa6a651 --- /dev/null +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java @@ -0,0 +1,296 @@ +package com.xm.core.ctrl; + +import java.util.*; +import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.*; + +import static com.mdp.core.utils.ResponseHelper.*; +import static com.mdp.core.utils.BaseUtils.*; +import com.mdp.core.entity.Tips; +import com.mdp.core.err.BizException; +import com.mdp.mybatis.PageUtils; +import com.mdp.core.utils.RequestUtils; +import com.mdp.core.utils.NumberUtil; +import com.mdp.safe.client.entity.User; +import com.mdp.safe.client.utils.LoginUtils; +import io.swagger.annotations.*; +import springfox.documentation.annotations.ApiIgnore; + +import com.xm.core.service.XmTaskBidOrderService; +import com.xm.core.entity.XmTaskBidOrder; + +/** + * url编制采用rest风格,如对xm_task_bid_order 任务相关费用订单表的操作有增删改查,对应的url分别为:
+ * 组织 com 顶级模块 xm 大模块 core 小模块
+ * 实体 XmTaskBidOrder 表 xm_task_bid_order 当前主键(包括多主键): id; + ***/ +@RestController("xm.core.xmTaskBidOrderController") +@RequestMapping(value="/**/core/xmTaskBidOrder") +@Api(tags={"任务相关费用订单表操作接口"}) +public class XmTaskBidOrderController { + + static Logger logger =LoggerFactory.getLogger(XmTaskBidOrderController.class); + + @Autowired + private XmTaskBidOrderService xmTaskBidOrderService; + + + Map fieldsMap = toMap(new XmTaskBidOrder()); + + + @ApiOperation( value = "查询任务相关费用订单表信息列表",notes=" ") + @ApiEntityParams( XmTaskBidOrder.class ) + @ApiImplicitParams({ + @ApiImplicitParam(name="pageSize",value="每页大小,默认20条",required=false), + @ApiImplicitParam(name="pageNum",value="当前页码,从1开始",required=false), + @ApiImplicitParam(name="total",value="总记录数,服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算",required=false), + @ApiImplicitParam(name="count",value="是否计算总记录条数,如果count=true,则计算计算总条数,如果count=false 则不计算",required=false), + @ApiImplicitParam(name="orderBy",value="排序列 如性别、学生编号排序 orderBy = sex desc,student desc",required=false), + }) + @ApiResponses({ + @ApiResponse(code = 200,response=XmTaskBidOrder.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'错误码'},total:总记录数,data:[数据对象1,数据对象2,...]}") + }) + @RequestMapping(value="/list",method=RequestMethod.GET) + public Map listXmTaskBidOrder( @ApiIgnore @RequestParam Map xmTaskBidOrder){ + Map m = new HashMap<>(); + Tips tips=new Tips("查询成功"); + RequestUtils.transformArray(xmTaskBidOrder, "ids"); + PageUtils.startPage(xmTaskBidOrder); + List> xmTaskBidOrderList = xmTaskBidOrderService.selectListMapByWhere(xmTaskBidOrder); //列出XmTaskBidOrder列表 + PageUtils.responePage(m, xmTaskBidOrderList); + m.put("data",xmTaskBidOrderList); + + m.put("tips", tips); + return m; + } + + + + /** + @ApiOperation( value = "新增一条任务相关费用订单表信息",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200,response=XmTaskBidOrder.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @RequestMapping(value="/add",method=RequestMethod.POST) + public Map addXmTaskBidOrder(@RequestBody XmTaskBidOrder xmTaskBidOrder) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功新增一条数据"); + try{ + boolean createPk=false; + if(!StringUtils.hasText(xmTaskBidOrder.getId())) { + createPk=true; + xmTaskBidOrder.setId(xmTaskBidOrderService.createKey("id")); + } + if(createPk==false){ + if(xmTaskBidOrderService.selectOneObject(xmTaskBidOrder) !=null ){ + return failed("pk-exists","编号重复,请修改编号再提交"); + } + } + xmTaskBidOrderService.insert(xmTaskBidOrder); + m.put("data",xmTaskBidOrder); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } + */ + + /** + @ApiOperation( value = "删除一条任务相关费用订单表信息",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") + }) + @RequestMapping(value="/del",method=RequestMethod.POST) + public Map delXmTaskBidOrder(@RequestBody XmTaskBidOrder xmTaskBidOrder){ + Map m = new HashMap<>(); + Tips tips=new Tips("成功删除一条数据"); + try{ + if(!StringUtils.hasText(xmTaskBidOrder.getId())) { + return failed("pk-not-exists","请上送主键参数id"); + } + XmTaskBidOrder xmTaskBidOrderDb = xmTaskBidOrderService.selectOneObject(xmTaskBidOrder); + if( xmTaskBidOrderDb == null ){ + return failed("data-not-exists","数据不存在,无法删除"); + } + xmTaskBidOrderService.deleteByPk(xmTaskBidOrder); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } + */ + + /** + @ApiOperation( value = "根据主键修改一条任务相关费用订单表信息",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200,response=XmTaskBidOrder.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @RequestMapping(value="/edit",method=RequestMethod.POST) + public Map editXmTaskBidOrder(@RequestBody XmTaskBidOrder xmTaskBidOrder) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功更新一条数据"); + try{ + if(!StringUtils.hasText(xmTaskBidOrder.getId())) { + return failed("pk-not-exists","请上送主键参数id"); + } + XmTaskBidOrder xmTaskBidOrderDb = xmTaskBidOrderService.selectOneObject(xmTaskBidOrder); + if( xmTaskBidOrderDb == null ){ + return failed("data-not-exists","数据不存在,无法修改"); + } + xmTaskBidOrderService.updateSomeFieldByPk(xmTaskBidOrder); + m.put("data",xmTaskBidOrder); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } + */ + + /** + @ApiOperation( value = "批量修改某些字段",notes="") + @ApiEntityParams( value = XmTaskBidOrder.class, props={ }, remark = "任务相关费用订单表", paramType = "body" ) + @ApiResponses({ + @ApiResponse(code = 200,response=XmTaskBidOrder.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @RequestMapping(value="/editSomeFields",method=RequestMethod.POST) + public Map editSomeFields( @ApiIgnore @RequestBody Map xmTaskBidOrderMap) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功更新一条数据"); + try{ + List ids= (List) xmTaskBidOrderMap.get("ids"); + if(ids==null || ids.size()==0){ + return failed("ids-0","ids不能为空"); + } + + Set fields=new HashSet<>(); + fields.add("id"); + for (String fieldName : xmTaskBidOrderMap.keySet()) { + if(fields.contains(fieldName)){ + return failed(fieldName+"-no-edit",fieldName+"不允许修改"); + } + } + Set fieldKey=xmTaskBidOrderMap.keySet().stream().filter(i-> fieldsMap.containsKey(i)).collect(Collectors.toSet()); + fieldKey=fieldKey.stream().filter(i->!StringUtils.isEmpty(xmTaskBidOrderMap.get(i) )).collect(Collectors.toSet()); + + if(fieldKey.size()<=0) { + return failed("fieldKey-0","没有需要更新的字段"); + } + XmTaskBidOrder xmTaskBidOrder = fromMap(xmTaskBidOrderMap,XmTaskBidOrder.class); + List xmTaskBidOrdersDb=xmTaskBidOrderService.selectListByIds(ids); + if(xmTaskBidOrdersDb==null ||xmTaskBidOrdersDb.size()==0){ + return failed("data-0","记录已不存在"); + } + List can=new ArrayList<>(); + List no=new ArrayList<>(); + User user = LoginUtils.getCurrentUserInfo(); + for (XmTaskBidOrder xmTaskBidOrderDb : xmTaskBidOrdersDb) { + Tips tips2 = new Tips("检查通过"); + if(!tips2.isOk()){ + no.add(xmTaskBidOrderDb); + }else{ + can.add(xmTaskBidOrderDb); + } + } + if(can.size()>0){ + xmTaskBidOrderMap.put("ids",can.stream().map(i->i.getId()).collect(Collectors.toList())); + xmTaskBidOrderService.editSomeFields(xmTaskBidOrderMap); + } + List msgs=new ArrayList<>(); + if(can.size()>0){ + msgs.add(String.format("成功更新以下%s条数据",can.size())); + } + if(no.size()>0){ + msgs.add(String.format("以下%s个数据无权限更新",no.size())); + } + if(can.size()>0){ + tips.setOkMsg(msgs.stream().collect(Collectors.joining())); + }else { + tips.setFailureMsg(msgs.stream().collect(Collectors.joining())); + } + //m.put("data",xmMenu); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } + */ + + /** + @ApiOperation( value = "根据主键列表批量删除任务相关费用订单表信息",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") + }) + @RequestMapping(value="/batchDel",method=RequestMethod.POST) + public Map batchDelXmTaskBidOrder(@RequestBody List xmTaskBidOrders) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功删除"); + try{ + if(xmTaskBidOrders.size()<=0){ + return failed("data-0","请上送待删除数据列表"); + } + List datasDb=xmTaskBidOrderService.selectListByIds(xmTaskBidOrders.stream().map(i-> i.getId() ).collect(Collectors.toList())); + + List can=new ArrayList<>(); + List no=new ArrayList<>(); + for (XmTaskBidOrder data : datasDb) { + if(true){ + can.add(data); + }else{ + no.add(data); + } + } + List msgs=new ArrayList<>(); + if(can.size()>0){ + xmTaskBidOrderService.batchDelete(can); + msgs.add(String.format("成功删除%s条数据.",can.size())); + } + + if(no.size()>0){ + msgs.add(String.format("以下%s条数据不能删除.【%s】",no.size(),no.stream().map(i-> i.getId() ).collect(Collectors.joining(",")))); + } + if(can.size()>0){ + tips.setOkMsg(msgs.stream().collect(Collectors.joining())); + }else { + tips.setFailureMsg(msgs.stream().collect(Collectors.joining())); + } + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } + */ +} diff --git a/xm-core/src/main/java/com/xm/core/entity/XmTaskBidOrder.java b/xm-core/src/main/java/com/xm/core/entity/XmTaskBidOrder.java new file mode 100644 index 00000000..f64f26e7 --- /dev/null +++ b/xm-core/src/main/java/com/xm/core/entity/XmTaskBidOrder.java @@ -0,0 +1,120 @@ +package com.xm.core.entity; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.Date; +import java.math.BigDecimal; + +/** + * 组织 com 顶级模块 xm 大模块 core 小模块
+ * 实体 XmTaskBidOrder所有属性名:
+ * "id","订单编号","ouserid","下单用户编号","obranchId","公司ID-下单客户对应的企业","ostatus","订单状态0-初始,1-待确认,2-待付款,3-已付款,4-已完成,5-已取消-未付款前可取消,取消后可删除,6-退单-退单后变为已取消,8已关闭-售后完成后可以关闭订单","ctime","创建时间","ltime","更新时间","payType","支付方式1微信2支付宝","payStatus","支付状态0待付款,1已付款","payTime","支付时间","prepayId","第三方支付订单编号","finalFee","最终总费用=origin_fee","othFee","其它费用","originFee","原始价格=任务佣金*平台配置的投标直通车收费比率","payAt","最终付款金额-客户付款后回填","payOpenid","支付账户对应的第三方openid,注意,下单根付款不一定是同一个人","payUserid","付款用户编号","payUsername","付款用户名称","taskId","任务编号","calcStatus","定时检查日期是否已过期,已过期则取消任务中的置顶、加急、热搜状态计算状态0-无须计算,1-本周期已计算待下周期计算,2-结束","calcTime","计算时间","payId","付款流水号(内部生成,传给第三方原样传回,如果不正确,不允许更新数据库,防止作弊)","tranId","第三方付款事务号","remark","订单备注","name","订单名称","bizType","订单业务类","projectId","项目编号","otype","订单类型7-投标直通车","taskBudgetAt","任务预算金额";
+ * 当前主键(包括多主键):
+ * id;
+ */ + @Data +@ApiModel(description="任务相关投标直通车订单表") +public class XmTaskBidOrder implements java.io.Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(notes="订单编号,主键",allowEmptyValue=true,example="",allowableValues="") + String id; + + + @ApiModelProperty(notes="下单用户编号",allowEmptyValue=true,example="",allowableValues="") + String ouserid; + + @ApiModelProperty(notes="公司ID-下单客户对应的企业",allowEmptyValue=true,example="",allowableValues="") + String obranchId; + + @ApiModelProperty(notes="订单状态0-初始,1-待确认,2-待付款,3-已付款,4-已完成,5-已取消-未付款前可取消,取消后可删除,6-退单-退单后变为已取消,8已关闭-售后完成后可以关闭订单",allowEmptyValue=true,example="",allowableValues="") + String ostatus; + + @ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="") + Date ctime; + + @ApiModelProperty(notes="更新时间",allowEmptyValue=true,example="",allowableValues="") + Date ltime; + + @ApiModelProperty(notes="支付方式1微信2支付宝",allowEmptyValue=true,example="",allowableValues="") + String payType; + + @ApiModelProperty(notes="支付状态0待付款,1已付款",allowEmptyValue=true,example="",allowableValues="") + String payStatus; + + @ApiModelProperty(notes="支付时间",allowEmptyValue=true,example="",allowableValues="") + Date payTime; + + @ApiModelProperty(notes="第三方支付订单编号",allowEmptyValue=true,example="",allowableValues="") + String prepayId; + + @ApiModelProperty(notes="最终总费用=origin_fee",allowEmptyValue=true,example="",allowableValues="") + BigDecimal finalFee; + + @ApiModelProperty(notes="其它费用",allowEmptyValue=true,example="",allowableValues="") + BigDecimal othFee; + + @ApiModelProperty(notes="原始价格=任务佣金*平台配置的投标直通车收费比率",allowEmptyValue=true,example="",allowableValues="") + BigDecimal originFee; + + @ApiModelProperty(notes="最终付款金额-客户付款后回填",allowEmptyValue=true,example="",allowableValues="") + BigDecimal payAt; + + @ApiModelProperty(notes="支付账户对应的第三方openid,注意,下单根付款不一定是同一个人",allowEmptyValue=true,example="",allowableValues="") + String payOpenid; + + @ApiModelProperty(notes="付款用户编号",allowEmptyValue=true,example="",allowableValues="") + String payUserid; + + @ApiModelProperty(notes="付款用户名称",allowEmptyValue=true,example="",allowableValues="") + String payUsername; + + @ApiModelProperty(notes="任务编号",allowEmptyValue=true,example="",allowableValues="") + String taskId; + + @ApiModelProperty(notes="定时检查日期是否已过期,已过期则取消任务中的置顶、加急、热搜状态计算状态0-无须计算,1-本周期已计算待下周期计算,2-结束",allowEmptyValue=true,example="",allowableValues="") + String calcStatus; + + @ApiModelProperty(notes="计算时间",allowEmptyValue=true,example="",allowableValues="") + Date calcTime; + + @ApiModelProperty(notes="付款流水号(内部生成,传给第三方原样传回,如果不正确,不允许更新数据库,防止作弊)",allowEmptyValue=true,example="",allowableValues="") + String payId; + + @ApiModelProperty(notes="第三方付款事务号",allowEmptyValue=true,example="",allowableValues="") + String tranId; + + @ApiModelProperty(notes="订单备注",allowEmptyValue=true,example="",allowableValues="") + String remark; + + @ApiModelProperty(notes="订单名称",allowEmptyValue=true,example="",allowableValues="") + String name; + + @ApiModelProperty(notes="订单业务类",allowEmptyValue=true,example="",allowableValues="") + String bizType; + + @ApiModelProperty(notes="项目编号",allowEmptyValue=true,example="",allowableValues="") + String projectId; + + @ApiModelProperty(notes="订单类型7-投标直通车",allowEmptyValue=true,example="",allowableValues="") + String otype; + + @ApiModelProperty(notes="任务预算金额",allowEmptyValue=true,example="",allowableValues="") + BigDecimal taskBudgetAt; + + /** + *订单编号 + **/ + public XmTaskBidOrder(String id) { + this.id = id; + } + + /** + * 任务相关投标直通车订单表 + **/ + public XmTaskBidOrder() { + } + +} \ No newline at end of file diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java new file mode 100644 index 00000000..8675d4a4 --- /dev/null +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java @@ -0,0 +1,24 @@ +package com.xm.core.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.util.List; +import java.util.Map; +import org.springframework.stereotype.Service; +import com.mdp.core.service.BaseService; +import static com.mdp.core.utils.BaseUtils.*; +import com.mdp.core.entity.Tips; +import com.mdp.core.err.BizException; + +import com.xm.core.entity.XmTaskBidOrder; +/** + * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
+ * 组织 com 顶级模块 xm 大模块 core 小模块
+ * 实体 XmTaskBidOrder 表 xm_task_bid_order 当前主键(包括多主键): id; + ***/ +@Service("xm.core.xmTaskBidOrderService") +public class XmTaskBidOrderService extends BaseService { + static Logger logger =LoggerFactory.getLogger(XmTaskBidOrderService.class); + +} + diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskBidOrderMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskBidOrderMapper.xml new file mode 100644 index 00000000..4f6aba25 --- /dev/null +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskBidOrderMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + and (res.id) in + + ( #{item}) + + + + + + + + + + + + + + + + + + + + + + + + + + insert into xm_task_bid_order( + + ) values ( + #{id},#{ouserid},#{obranchId},#{ostatus},#{ctime},#{ltime},#{payType},#{payStatus},#{payTime},#{prepayId},#{finalFee},#{othFee},#{originFee},#{payAt},#{payOpenid},#{payUserid},#{payUsername},#{taskId},#{calcStatus},#{calcTime},#{payId},#{tranId},#{remark},#{name},#{bizType},#{projectId},#{otype},#{taskBudgetAt} + ) + + + + + delete from xm_task_bid_order res + + + + + + + + delete from xm_task_bid_order + where id = #{id} + + + + + update xm_task_bid_order + + + + where id = #{id} + + + + + update xm_task_bid_order + + + + where id = #{id} + + + + + + + + update xm_task_bid_order + set + + where id = #{item.id} + + + + + + update xm_task_bid_order + + + + where (id) in + + ( #{item}) + + + + + delete from xm_task_bid_order + where + (id) in + + ( #{item.id} ) + + + + + + + id,ouserid,obranch_id,ostatus,ctime,ltime,pay_type,pay_status,pay_time,prepay_id,final_fee,oth_fee,origin_fee,pay_at,pay_openid,pay_userid,pay_username,task_id,calc_status,calc_time,pay_id,tran_id,remark,name,biz_type,project_id,otype,task_budget_at + + + + + and res.id = #{id} + and res.ouserid = #{ouserid} + and res.obranch_id = #{obranchId} + and res.ostatus = #{ostatus} + and date_format(res.ctime,'%Y-%m-%d') = date_format(#{ctime},'%Y-%m-%d') + and date_format(res.ltime,'%Y-%m-%d') = date_format(#{ltime},'%Y-%m-%d') + and res.pay_type = #{payType} + and res.pay_status = #{payStatus} + and date_format(res.pay_time,'%Y-%m-%d') = date_format(#{payTime},'%Y-%m-%d') + and res.prepay_id = #{prepayId} + and res.final_fee = #{finalFee} + and res.oth_fee = #{othFee} + and res.origin_fee = #{originFee} + and res.pay_at = #{payAt} + and res.pay_openid = #{payOpenid} + and res.pay_userid = #{payUserid} + and res.pay_username = #{payUsername} + and res.task_id = #{taskId} + and res.calc_status = #{calcStatus} + and date_format(res.calc_time,'%Y-%m-%d') = date_format(#{calcTime},'%Y-%m-%d') + and res.pay_id = #{payId} + and res.tran_id = #{tranId} + and res.remark = #{remark} + and res.name = #{name} + and res.biz_type = #{bizType} + and res.project_id = #{projectId} + and res.otype = #{otype} + and res.task_budget_at = #{taskBudgetAt} + + + + ouserid = #{ouserid}, + obranch_id = #{obranchId}, + ostatus = #{ostatus}, + ctime = #{ctime}, + ltime = #{ltime}, + pay_type = #{payType}, + pay_status = #{payStatus}, + pay_time = #{payTime}, + prepay_id = #{prepayId}, + final_fee = #{finalFee}, + oth_fee = #{othFee}, + origin_fee = #{originFee}, + pay_at = #{payAt}, + pay_openid = #{payOpenid}, + pay_userid = #{payUserid}, + pay_username = #{payUsername}, + task_id = #{taskId}, + calc_status = #{calcStatus}, + calc_time = #{calcTime}, + pay_id = #{payId}, + tran_id = #{tranId}, + remark = #{remark}, + name = #{name}, + biz_type = #{bizType}, + project_id = #{projectId}, + otype = #{otype}, + task_budget_at = #{taskBudgetAt} + + + ouserid = #{ouserid}, + obranch_id = #{obranchId}, + ostatus = #{ostatus}, + ctime = #{ctime}, + ltime = #{ltime}, + pay_type = #{payType}, + pay_status = #{payStatus}, + pay_time = #{payTime}, + prepay_id = #{prepayId}, + final_fee = #{finalFee}, + oth_fee = #{othFee}, + origin_fee = #{originFee}, + pay_at = #{payAt}, + pay_openid = #{payOpenid}, + pay_userid = #{payUserid}, + pay_username = #{payUsername}, + task_id = #{taskId}, + calc_status = #{calcStatus}, + calc_time = #{calcTime}, + pay_id = #{payId}, + tran_id = #{tranId}, + remark = #{remark}, + name = #{name}, + biz_type = #{bizType}, + project_id = #{projectId}, + otype = #{otype}, + task_budget_at = #{taskBudgetAt}, + + + + ouserid = #{item.ouserid}, + obranch_id = #{item.obranchId}, + ostatus = #{item.ostatus}, + ctime = #{item.ctime}, + ltime = #{item.ltime}, + pay_type = #{item.payType}, + pay_status = #{item.payStatus}, + pay_time = #{item.payTime}, + prepay_id = #{item.prepayId}, + final_fee = #{item.finalFee}, + oth_fee = #{item.othFee}, + origin_fee = #{item.originFee}, + pay_at = #{item.payAt}, + pay_openid = #{item.payOpenid}, + pay_userid = #{item.payUserid}, + pay_username = #{item.payUsername}, + task_id = #{item.taskId}, + calc_status = #{item.calcStatus}, + calc_time = #{item.calcTime}, + pay_id = #{item.payId}, + tran_id = #{item.tranId}, + remark = #{item.remark}, + name = #{item.name}, + biz_type = #{item.bizType}, + project_id = #{item.projectId}, + otype = #{item.otype}, + task_budget_at = #{item.taskBudgetAt} + + \ No newline at end of file