You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/resources/mybatis/mapper/purchase/PurContractMapper.xml

155 lines
6.0 KiB
XML

<?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.glxp.api.dao.purchase.PurContractMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.purchase.PurContractEntity">
<!--@mbg.generated-->
<!--@Table pur_contract-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="fromCorp" jdbcType="VARCHAR" property="fromCorp" />
<result column="contractDate" jdbcType="TIMESTAMP" property="contractDate" />
<result column="invCode" jdbcType="VARCHAR" property="invCode" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="payType" jdbcType="INTEGER" property="payType" />
<result column="startDate" jdbcType="TIMESTAMP" property="startDate" />
<result column="endDate" jdbcType="TIMESTAMP" property="endDate" />
<result column="amount" jdbcType="DECIMAL" property="amount" />
<result column="payAmount" jdbcType="DECIMAL" property="payAmount" />
<result column="payDate" jdbcType="TIMESTAMP" property="payDate" />
<result column="invoiceDate" jdbcType="TIMESTAMP" property="invoiceDate" />
<result column="planOrderIdFk" jdbcType="VARCHAR" property="planOrderIdFk" />
<result column="orderIdFk" jdbcType="VARCHAR" property="orderIdFk" />
<result column="createUser" jdbcType="VARCHAR" property="createUser" />
<result column="updateUser" jdbcType="VARCHAR" property="updateUser" />
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, code, `name`, fromCorp, contractDate, invCode, `status`, `type`, payType, startDate,
endDate, amount, payAmount, payDate, invoiceDate, planOrderIdFk, orderIdFk, `createUser`,
updateUser, createTime, updateTime, remark
</sql>
<insert id="insert" keyProperty="id"
parameterType="com.glxp.api.entity.purchase.PurPlanEntity" useGeneratedKeys="true">
insert
INTO pur_contract
(
code,
`name`,
fromCorp,
contractDate,
invCode,
`status`,
`type`,
payType,
startDate,
endDate,
amount,
payAmount,
payDate,
invoiceDate,
planOrderIdFk,
orderIdFk,
`createUser`,
updateUser,
createTime,
updateTime,
remark
)
values (
#{code},
#{name},
#{fromCorp},
#{contractDate},
#{invCode},
#{status},
#{type},
#{payType},
#{startDate},
#{endDate},
#{amount},
#{payAmount},
#{payDate},
#{invoiceDate},
#{planOrderIdFk},
#{orderIdFk},
#{createUser},
#{updateUser},
#{createTime},
#{updateTime},
#{remark}
)
</insert>
<select id="selectPage" parameterType="com.glxp.api.req.purchase.PurContractRequest"
resultType="com.glxp.api.res.purchase.PurContractEntityResponse">
select
pc.id, pc.code, pc.`name`, pc.fromCorp, pc.contractDate, pc.invCode, pc.`type`, pc.payType, pc.startDate,
pc.endDate, pc.amount, pc.payAmount, pc.payDate, pc.invoiceDate, pc.planOrderIdFk, pc.orderIdFk, pc.`createUser`,
pc.updateUser, pc.createTime, pc.updateTime, pc.remark,pc.approvalFlowId,pc.isGenerateOrder,IFNULL(pc.status,0) as status,
saf.status as flowStatus, saf.nextNodeName as nextNodeName , saf.nextApprovalNodeType as nextApprovalNodeType
from pur_contract pc
left join sys_approval_flow saf ON pc.approvalFlowId = saf.id
<where>
pc.code is not null
<if test="!purContractRequest.sysApprovalFlow">
<if test="purContractRequest.status != null and purContractRequest.status != 10 and purContractRequest.status != 11 and purContractRequest.status != 12 ">
and pc.status = #{purContractRequest.status}
</if>
<if test="purContractRequest.status == 10">
and (pc.status = 2 )
</if>
<if test="purContractRequest.status == 11">
and (pc.status = 1 or pc.status is null )
</if>
<if test="purContractRequest.status == 12">
and (pc.status = 3 or pc.status = 4)
</if>
</if>
<if test="purContractRequest.sysApprovalFlow">
<if test="purContractRequest.status != null and purContractRequest.status != 10 and purContractRequest.status != 11 and purContractRequest.status != 12 ">
and saf.status = #{purContractRequest.status}
</if>
<if test="purContractRequest.status == 10">
and (saf.status = 2)
</if>
<if test="purContractRequest.status == 11">
and (saf.status = 1 or saf.status is null)
</if>
<if test="purContractRequest.status == 12">
and (saf.status = 3 or saf.status = 4)
</if>
</if>
<if test="purContractRequest.code != null and purContractRequest.code != ''" >
and pc.code like concat('%',#{purContractRequest.code},'%')
</if>
<if test="purContractRequest.name != null and purContractRequest.name != ''" >
and pc.name like concat('%',#{purContractRequest.name},'%')
</if>
<if test="purContractRequest.isGenerateOrder != null " >
and pc.isGenerateOrder = #{purContractRequest.isGenerateOrder}
</if>
<if test="purContractRequest.startDate != null and purContractRequest.startDate != ''">
AND pc.contractDate <![CDATA[>=]]> #{purContractRequest.startDate}
</if>
<if test="purContractRequest.endDate != null and purContractRequest.endDate != ''">
AND pc.contractDate <![CDATA[<=]]> #{purContractRequest.endDate}
</if>
<if test="purContractRequest.pageType != null ">
AND pc.pageType = #{purContractRequest.pageType}
</if>
order by id desc
</where>
</select>
</mapper>