FROM plm_project_info a left join plm_request_header prh on a.site = prh.site and prh.menu_id = #{query.menuId} and prh.status = 'Y' left join plm_request_node d on a.site = d.site and prh.classification_no = d.classification_no and prh.workflow_id = d.workflow_id and a.step_id = d.step_id outer apply ( select stuff(( select ';' + vals.value from ( select distinct isnull(pf.update_by, su.username) as value from plm_process_form pf left join sys_user su on pf.domain_control_account = su.domain_control_account where pf.site = a.site and pf.workflow_id = prh.workflow_id and pf.node_id = d.node_id and pf.document_no = a.project_id and pf.is_remark = '0' ) vals for xml path(''), type ).value('.', 'nvarchar(max)'), 1, 1, '') as currentApprover ) approverData AND a.id = #{query.id} AND a.customer_project_no like #{query.customerProjectNo} AND a.site = #{query.site} AND a.create_by = #{query.userName} AND a.project_id like #{query.projectId} AND a.project_name like #{query.projectName} AND a.project_type_db like #{query.projectType} AND a.project_id in ( select project_id from AccessProject where site=#{query.site} and username=#{query.userName} and searchFlag='Y' ) AND a.priority = #{query.priority} AND dbo.plm_get_customer_desc(a.site, a.customer_id) like #{query.customerName} AND a.customer_Id like #{query.customerId} AND a.status = #{query.status} AND d.node_id = #{query.nodeId} AND isnull(approverData.currentApprover, '') like '%' + #{query.currentApprover} + '%' insert into plm_project_info (project_id, ori_project_id, project_type_db, project_name, status, project_source, customer_id, create_by, create_date, priority, industry, site, project_desc, customer_remark, remark, need_date, parent_project_no, final_customer_id, customer_Project_No, productSet, project_amount, step_id, reject_flag, reject_step_id) values (#{projectId}, #{projectId}, #{projectTypeDb}, #{projectName}, #{status}, #{projectSource}, #{customerId}, #{createBy}, GetDate(), #{priority}, #{industry}, #{site}, #{projectDesc}, #{customerRemark}, #{remark}, #{needDate}, #{parentProjectNo}, #{finalCustomerId}, #{customerProjectNo}, #{productSet}, #{projectAmount}, #{stepId}, #{rejectFlag}, #{rejectStepId}) update plm_project_info set project_type_db=#{projectTypeDb},project_name=#{projectName},project_source=#{projectSource},status=#{status}, customer_id=#{customerId},priority=#{priority},industry=#{industry},project_desc=#{projectDesc},customer_remark=#{customerRemark},remark=#{remark},need_date=#{needDate}, update_by=#{updateBy},update_date=GetDate(),parent_project_no = #{parentProjectNo},final_customer_id=#{finalCustomerId},productSet=#{productSet}, customer_Project_No=#{customerProjectNo},project_amount=#{projectAmount} where id=#{id} delete from plm_project_team where site=#{site} and project_id=#{projectId} delete from AccessProject where site=#{site} and project_id=#{projectId} insert into plm_project_team (site,project_id,operator_id,type) values (#{site},#{projectId},#{operatorId},#{type}) insert into AccessProject(site,project_id,username,searchFlag,updateFlag,downFlag,deleteFlag) values (#{site},#{projectId},#{username},#{searchFlag},#{updateFlag},#{downFlag},#{deleteFlag}) insert into plm_project_contact (site, project_id, customer_id, contact_id) values (#{site}, #{projectId}, #{customerId}, #{contactId}) delete from plm_project_contact where site = #{site} and project_id = #{projectId} and customer_id = #{customerId} and contact_id = #{contactId} delete from plm_project_contact where site=#{site} and project_id=#{projectId} insert into plm_project_contact (site,project_id,contact_id,customer_id) values (#{site},#{projectId},#{contactId},#{customerId}) delete from plm_project_info where site=#{site} and project_id=#{projectId} delete from plm_project_part where site=#{site} and project_id=#{projectId} insert into plm_project_part (site,project_id, test_part_no, part_type, part_desc, part_spec, material_number, remark, create_date, create_by, part_name, code_no, group_id, product_group_id1, product_group_id2) values (#{site}, #{projectId}, #{testPartNo}, #{partType}, #{partDesc}, #{partSpec}, #{materialNumber}, #{remark}, GetDate(), #{username}, #{partName}, #{codeNo}, #{groupId}, #{productGroupId1}, #{productGroupId2}) update plm_project_part set part_type=#{partType}, part_desc=#{partDesc}, part_spec=#{partSpec}, material_number=#{materialNumber}, remark=#{remark}, update_date=GetDate(), update_by=#{username}, part_name=#{partName}, code_no=#{codeNo}, group_id = #{groupId}, product_group_id1 = #{productGroupId1}, product_group_id2 = #{productGroupId2} where id=#{id} delete from plm_project_part where id=#{id} insert into plm_tool_purchase_request (site,order_no,test_part_no,project_id,tool_id,type,status,reason,tool_offset,qty,party_a,supplier_id,price,tool_cost, all_cost,IFS_PR_No,po_number,remark,create_by,create_date,planner,applicant) values (#{site},#{orderNo},#{testPartNo},#{projectId},#{toolId},#{type},#{status},#{reason},#{toolOffset},#{qty},#{partyA},#{supplierId},${price},#{toolCost}, #{allCost},#{ifsPrNo},#{poNumber},#{remark},#{username},GetDate(),#{planner},#{applicant}) update plm_project_info set final_customer_id = #{finalCustomerId} where site = #{site} and project_id = #{projectId} update plm_project_info set status = '审批中' where site = #{site} and project_id = #{projectId} and status = '草稿' update plm_project_info set status = #{status}, update_by = #{updateBy}, update_date = GetDate() where site = #{site} and project_id = #{projectId} update plm_project_info set status = '草稿', step_id = 10, reject_flag = 'N', reject_step_id = null, update_by = #{updateBy}, update_date = GetDate() where site = #{site} and project_id = #{projectId} and status = '已完成'